利用指针访问成员是用"->",利用变量访问成员用的是"."

1、指向不同

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

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

2、读法不同

(*a).b 等价于 a->b。"."一般情况下读作"的”。

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

3、作用的不同

在“结构”一单元中出现的->运算符成为“右箭头选择”,在使用中可以用new_node->value = 10;来代替(*new_code).value = 10;

也就是说在结构中答,运算符->是运算符*和运算符.的结合,在上述语句中,他先对new_node间接寻址以定位所指向的结构,然后再选择结构的成员value。

reference:https://zhidao.baidu.com/question/118239934.html

C语言中.和-的区别相关推荐

  1. c语言中区别一般变量,C语言中,为了区别一般的变量,符号常量必须用

    C语言中,为了区别一般的变量,符号常量必须用大写字母表示.(?) 答:错 ,维也纳古典乐派代表人物之一,欧洲古典主义时期作曲家.因其对古典音乐的重大贡献,对奏鸣曲式和交响曲套曲结构的发展和创新,而被后 ...

  2. C 语言中” 与””的区别

    '' 引起的一个字符代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值."" 引起的字符串代表的是一个指向无名数组起始字符的指针. 对这两个符号产生了兴趣,遂打开 VS ...

  3. C语言中.和->区别

    结构体变量用 . 运算符来访问结构体的成员 struct A { int a; int b; };A object; object.a = 1; 指向结构体的指针用->来访问其指向的结构体的成员 ...

  4. c语言中'.'与'-'的区别

    记录学习c语言中遇见的问题. 定义的结构体如果是指针,访问成员时就用->如果定义的是结构体变量,访问成员时就用. 例如:struct AAA { int a; char b;}; struct ...

  5. c语言中!与~的区别

    编译器信息还不知道怎么看. 在我电脑和手机的GCC环境中 !: 代表值得取反,对于整形变量,只要不为0,使用 ! 取反都是0,0取反就是1.就像 bool 只有真假一样. ~: 代表位的取反,对于整形 ...

  6. c语言中 “=”和”==“的区别

    "="   是把"="右边的值赋值给左边. 如 int i: i=2: 将整数2赋值给i "=="    是将"=="左 ...

  7. C语言中“.”与-的区别

    写过C语言的各位朋友刚开始的时候一定受过这俩个混淆的坑吧. 看着感觉这俩个差不多啊,都是可以指向一个结构体的元素.但是,往往我们写的时候感觉错误百出: 下面我指出这俩个混淆的错误: 代码附上: 在上图 ...

  8. 【新手向】C语言中“=”与“==”的区别及使用方法

    有什么不同? 虽然"=""=="同属于操作符的一种,但实际上"="属于赋值操作符,"=="属于关系操作符. 根据他们操作 ...

  9. c语言中.和-区别,c语言中-和.的区别

    对于c语言中"->"和"."的区别总结如下: 1.A.B则A为对象或者结构体: 2.A->B则A为指针,->是成员提取,A->B是提取A ...

  10. java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。

    1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

最新文章

  1. Linux安全检查方法
  2. RxJS 6有哪些新变化?
  3. 《HTML5 canvas开发详解(第2版)》——1.3 本书使用的基础HTML页面
  4. Azure data studio 跨平台数据库管理工具试用
  5. 七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)
  6. java 类 加载 初始化_java类的加载与初始化
  7. Linux命令----cat
  8. MySQL架构设计相关的方式方法和软件介绍
  9. python从入门到放弃百度云-Python从入门到放弃:概论
  10. 无需第三方,使用Mac预览合并PDF
  11. 《数学之美》—余弦定理和新闻的分类
  12. 在SQL Server中建立主键外键的关系
  13. 我为什么弃用OpenStack转向CNware
  14. gpuinfo测试软件,gpuinfo
  15. el-amap的使用
  16. NodeJS 中上传图片,并且在数据库中保存图片地址
  17. 需要administrator权限才能删除文件的处理方法
  18. WiFi的单频和双频
  19. r语言plotmds_科学网—在R中运行metaMDS - 梅卫平的博文
  20. 最大可传输单元 MTU 对 UDP/TCP 包的大小限制

热门文章

  1. matlab dwt函数应用,MATLAB中关于DCT,DFT和DWT的相关函数
  2. Android进阶之路 - keyStore、jks签名证书相互转换
  3. Jetpack Compose Modifier用法详解,如何保证高可用
  4. Pascal voc 数据集xml格式解析
  5. batchnomal_Linux Kernel 排程機制介紹 ? Loda's blog
  6. Xcode7 网络请求报错:The resource could not be loaded be
  7. win10小娜不能使用解决方案
  8. 年底个人安全注意事项
  9. CTGU实验5_2-创建还书罚款触发器
  10. 【HUSTOJ】1022: 输出小写字母表