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 @ 2023-03-28 11:06  skypang  阅读(276)  评论(0)    收藏  举报  来源