C++ 语法的奇怪地方

(*p).a
和p->a
这两种写法在c++都可以?请问这两种写法分别是什么时候?

阅读 1.9k
3 个回答

都可以,是等价的。

什么时候都行

c++ 语法告诉我们,当访问值对象的属性时用 “.” 即 Object.val,当用指针访问地址里存储值对象的属性时用 ->,即 pointer->val。

同时语法告诉我们在指针前面加 * 代表解引用,此时就代表我们用的是值对象访问属性,即 (*pointer).val

这是语法告诉了我们可以这么写,编译器都认识。

就像: 你吃了吗? 和 吃了吗你?
中国人都能明白什么意思,但是有些地方就喜欢用倒装句,有些地方就喜欢主谓宾正常的格式来说,都行。

至于实际开发项目中,看组织安排,同一风格就好。一般都用的是 -> 方式

-> 运算符就是个语法糖,方便使用指针直接访问成员

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题