C语言--“.”与“->”有什么区别?
2024-09-03 08:57:07
这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。
下面说说我对它们的理解。
一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。
而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。
此外,(*a).b 等价于 a->b。
"."一般情况下读作"的”。
“->”一般读作"指向的结构体的"。
————————————————
版权声明:本文为CSDN博主「faihung」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/faihung/article/details/79190039
————————————————
版权声明:本文为CSDN博主「faihung」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/faihung/article/details/79190039
最新文章
- 【WPF】释放图像资源, [删除时报另一进程占用]
- Winsock 入门 Echo 示例
- mysql:查询排名
- Data Structure 之 最优二叉树
- 我的学习笔记之node----node.js+socket.io实时聊天(2)
- BZOJ 1001 狼抓兔子
- linux任务前后台执行
- PHP获取字符串编码与转码
- Golang中Struct与DB中表字段通过反射自动映射 - sqlmapper
- 棋盘的完美覆盖问题,c++代码实现
- JQuery --- 第一期 (初识jQuery, JQuery核心函数和工具方法)
- Vue父组件向子组件传递一个动态的值,子组件如何保持实时更新实时更新?
- Verilog手绘FVH信号
- angularjs ng-bind-html的用法总结
- 从今天开始慢慢阅读java9源码决心的声明。
- eclipse svn 删除不了项目,合并不了问题
- Quartz.NET在ASP.NET 中使用
- SRA秘钥生成与解密
- 最全的Spring AOP
- 每天一个linux命令(性能、优化):【转载】lsof命令
热门文章
- java 虚拟机原理
- Qt实践基础-简单的登录界面的实现
- 【Git】git使用 - rebase的使用
- opencv —— 读取并播放视频 VideoCapture capture(";C:/1.mp4";);
- 简单java web制作思路
- Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0
- Quartz.NET - 教程 4: 更多关于触发器
- Jquery实现挂号平台首页源码2
- Educational Codeforces Round 80 (Rated for Div. 2)(A-E)
- 暂停后保存sql server profiler的跟踪结果