C语言中“.”与“->”有的区别详解

C语言中“.”与“->”有的区别详解,第1张

C语言中“.”与“->”有的区别详解

’’ . ''
一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
" -> "
而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

例:

struct mun{
  int a = 1 ;
  int k ;
  char b = 'a';
}
mun kun ;
printf("a= %d", kun.a) ;

struct mun * p = &kun ;
p->k = 2 ;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4950206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存