• C语言--“.”与“->”有什么区别?


    这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。
     
    下面说说我对它们的理解。
     
    一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
     
    而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。
     
    此外,(*a).b 等价于 a->b。
     
    "."一般情况下读作"的”。
    “->”一般读作"指向的结构体的"。
    ————————————————
    版权声明:本文为CSDN博主「faihung」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/faihung/article/details/79190039
  • 相关阅读:
    weka中算法说明[转]
    浅入浅出JS中的eval及json
    JavaScript变量声明提前
    三种常用的js数组去重方法
    深入理解JavaScript的变量作用域
    调试工具--console用法收藏
    《js高级程序设计》--第三章数据类型
    Oracle数据备份和恢复
    Oracle归档日志管理
    Oracle字符集的设置
  • 原文地址:https://www.cnblogs.com/minmin123/p/11927338.html
Copyright © 2020-2023  润新知