在c语言中,一般:
首先声明一个结构体如下
struct boy{
int age;
char name;
}
"."一般情况下读作"的”。其前面是结构体。
“->”一般读作"指向的结构体的"。其前面一定是一个指向结构体的指针
例如上面声明的结构体
srtuct boy peter
struct boy *p
p=&peter
那么p->age与peter.age是一样的。
用法:
-
一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
-
而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。
-
此外(*a).b 等价于 a->b。