为什么这样定义时可以用 L.data[1];
为什么换一种存储方式定义就要使用L->data
我是这么理解的:
如果用typdef 定义结构,结构变量访问结构里的成员用点号. ;
如果是定义一个结构指针(带星号),就用->这种访问方式。
下面是一个简单的例子:
#include <stdio.h>
typedef struct message {
char name[25];
int age;
}message ,*pmessage;
int main(){
message a = {"张三",25};
pmessage pa = &a;
printf("结构变量访问结构成员:%s %d\n",a.name,a.age);
printf("结构指针访问结构成员:%s %d\n",pa->name,pa->age);
return 0;
}
引用类成员就用.
引用指针类成员用->,简单点就是带*的用->
不记得就试试,如果用.或者->会有自动补全出现
当以“指向某块内存的地址”的指针变量来参考内存中的成员时用->进行结构成员寻址。采用该块内存头地址直接寻址时可以用.操作。个人理解,望指正