C语言中.和->的区别

区别:

. : 用来访问结构体变量。
-> :一个指针,指向一个结构体,那么用“ -> ”来访问其指向结构体的变量。

先看看“ . ”

#include "stdio.h"

typedf struct {
    int age;
}STUDENT;

int main() {
    STUENT stu;
    stu.ageD = 10;
    printf("age is : %d", stu.age);
}

//输出为age is : 10

再看看“ -> ”

#include "stdio.h"
#include "malloc.h"

typedf struct {
    int age;
}STUDENT;

int main() {
    STUDENT *p = (STUDENT *) malloc(sizeof(STUDENT));

    p->age = 99;

    printf("age is : %d", p->age);
}

当然了,以下和上面这个等价

#include "stdio.h"
#include "malloc.h"

typedf struct {
    int age;
}STUDENT;

int main() {
    STUDENT *p = (STUDENT *) malloc(sizeof(STUDENT));

    (*p).age = 99;    //别忘了括号

    printf("age is : %d", (*p).age);
}

总结:A->age 等价 (*A).age ,别忘了括号。

原文来自于关于C语言中.与->的区别详解

posted @   skypang  阅读(190)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示