这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。

下面说说我对它们的理解。

一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。

而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。否则内存中只分配了指针的内存,没有分配结构体的内存,导致想要的结构体实际上是不存在。这时候用“->”引用自然出错了,因为没有结构体,自然没有结构体的域了。

此外,(*a).b 等价于 a->b。

"."一般情况下读作"的”。

“->”一般读作"指向的结构体的"。

C语言--“.”与“-”有什么区别?相关推荐

  1. c语言exit和return区别,在fork和vfork中使用

    转自c语言exit和return区别,在fork和vfork中使用 exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: ...

  2. 脚本语言和编程语言的区别

    脚本语言和编程语言的区别 计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类. 1 . 计算机所能识别的语言只有机器语言,即由0和1构成的代码.但通常人们编程时,不采用机器语 ...

  3. Go语言中*和的区别

    Go语言中*和&的区别 总结 示例 老是分不清*和&的区别,今天特意总结了一下. 1. 总结 &是取地址符. *可以表示一个变量是指针类型,也可以表示指针类型变量所指向的存储单 ...

  4. 计算机语言缺省,揭秘物联网必学语言——C语言与C++的区别

    C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西.有很多人会有这样的疑问:C语言和C++有什么区别呢? C++是在C语言的基础上发展来的,但是并不是C++比C语言高级,两者的编程 ...

  5. C语言 全局变量和局部变量区别 - C语言零基础入门教程

    目录 一.全局变量和局部变量简介 1.全局变量简介 2.局部变量简介 二.全局变量和局部变量注意事项 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

  6. C语言 NULL 和 0 区别 - C语言零基础入门教程

    目录 一.关于 NULL 定义 二.NULL 和 0 区别 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.关于 NULL 定义 NU ...

  7. C语言 const 和 define 区别 - C语言零基础入门教程

    目录 一.const 使用 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 ...

  8. C语言 typedef 和 define 区别 - C语言零基础入门教程

    目录 一.typedef 简介 1.typedef 简化复杂的类型声明 A.定义普通变量 B.定义函数指针 C.定义结构体 2.定义与平台无关的类型 二.define 简介 三.typedef 和 d ...

  9. C语言 指针和数组区别 - C语言零基础入门教程

    目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...

  10. C语言 memcpy和memcpy_s区别 - C语言零基础入门教程

    目录 一.memcpy 和 memcpy_s 函数区别 1.语法对比 memcpy_s 函数语法 memcpy 函数语法 2.memcpy 和 memcpy_s 相同点 3.memcpy 和 memc ...

最新文章

  1. 基于 OpenCV 的表格文本内容提取
  2. 强化学习vs遗传算法-人工智能在模拟领域的应用
  3. 使用 Node.js 开发简单的脚手架工具
  4. 企业 MySQL 优化实施方案
  5. 【渝粤教育】 国家开放大学2020年春季 2772家畜环境卫生与设施 参考试题
  6. 【经验】Qt项目开发必备工具
  7. 英文标点符号翻译大全
  8. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)
  9. AI算力的阿喀琉斯之踵:内存墙
  10. 467.环绕字符串中唯一的子字符串
  11. 升级版4850竖曲线
  12. 201万年薪,华为天才少年路径可以复制吗
  13. flex: 1到底是什么意思?
  14. testflight怎么做版本更新_TestFlight
  15. in-place运算总结
  16. 亿级流量电商详情页系统的大型高并发与高可用缓存架构实战
  17. 东半球最好的TV桌面开源项目
  18. python进阶 - day1
  19. 天地不仁,通货在膨胀
  20. iOS 设置个人头像

热门文章

  1. AJAX-客户端服务器端通信
  2. 无法打开JFrame窗口
  3. linux系统下查看cpu功耗,Linux系统下查看CPU信息
  4. 论文《Context Contrasted Feature and Gated Multi-scale Aggregation for Scene Segmentation》笔记
  5. Resharper使用
  6. BOOL类型数组初始化
  7. C++的File类文件操作(转)
  8. 一带一红网红基地推出O2O网红直播过年模式
  9. 莫圣宏:4.30黄金开启跌势,黑色星期五黄金操作建议!
  10. 玩一玩Spring容器(可视化笔记02)