zoukankan      html  css  js  c++  java
  • C语言--“.”与“->”有什么区别?

    这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。
     
    下面说说我对它们的理解。
     
    一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
     
    而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。
     
    此外,(*a).b 等价于 a->b。
     
    "."一般情况下读作"的”。
    “->”一般读作"指向的结构体的"。
    ————————————————
    版权声明:本文为CSDN博主「faihung」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/faihung/article/details/79190039
  • 相关阅读:
    并发容器梳理
    CAS总结
    原子类总结and-Git提交出现error: src refspec master does not match any的问题
    简单工厂模式小结
    JVM学习与问题总结——java内存区域与内存溢出异常
    反射机制学习记录
    观察者模式
    IDEA的一些常用设置
    建造者模式
    【[AH2017/HNOI2017]礼物】
  • 原文地址:https://www.cnblogs.com/minmin123/p/11927338.html
Copyright © 2011-2022 走看看