这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。
 
下面说说我对它们的理解。
 
一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
 
而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。
 
此外,(*a).b 等价于 a->b。
 
"."一般情况下读作"的”。
“->”一般读作"指向的结构体的"。
————————————————
版权声明:本文为CSDN博主「faihung」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/faihung/article/details/79190039

最新文章

  1. 【WPF】释放图像资源, [删除时报另一进程占用]
  2. Winsock 入门 Echo 示例
  3. mysql:查询排名
  4. Data Structure 之 最优二叉树
  5. 我的学习笔记之node----node.js+socket.io实时聊天(2)
  6. BZOJ 1001 狼抓兔子
  7. linux任务前后台执行
  8. PHP获取字符串编码与转码
  9. Golang中Struct与DB中表字段通过反射自动映射 - sqlmapper
  10. 棋盘的完美覆盖问题,c++代码实现
  11. JQuery --- 第一期 (初识jQuery, JQuery核心函数和工具方法)
  12. Vue父组件向子组件传递一个动态的值,子组件如何保持实时更新实时更新?
  13. Verilog手绘FVH信号
  14. angularjs ng-bind-html的用法总结
  15. 从今天开始慢慢阅读java9源码决心的声明。
  16. eclipse svn 删除不了项目,合并不了问题
  17. Quartz.NET在ASP.NET 中使用
  18. SRA秘钥生成与解密
  19. 最全的Spring AOP
  20. 每天一个linux命令(性能、优化):【转载】lsof命令

热门文章

  1. java 虚拟机原理
  2. Qt实践基础-简单的登录界面的实现
  3. 【Git】git使用 - rebase的使用
  4. opencv —— 读取并播放视频 VideoCapture capture("C:/1.mp4");
  5. 简单java web制作思路
  6. Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0
  7. Quartz.NET - 教程 4: 更多关于触发器
  8. Jquery实现挂号平台首页源码2
  9. Educational Codeforces Round 80 (Rated for Div. 2)(A-E)
  10. 暂停后保存sql server profiler的跟踪结果