箭头与点语法? [复制]

Posted

技术标签:

【中文标题】箭头与点语法? [复制]【英文标题】:Arrow vs dot syntax? [duplicate] 【发布时间】:2013-06-18 03:35:55 【问题描述】:

一位朋友正在学习数据结构课程,我试图解释链表上下文中的差异。我真的应该知道这一点,但是专注于高级框架,我有点生疏了。我知道“箭头与指针一起使用”,仅此而已。

本质上,在 C 语言中,访问某个变量的属性时,点和箭头有什么区别?另外,因为我的心情特别愚蠢,这在C++中是一样的,还是改变了?

【问题讨论】:

也高度相关:***.com/questions/4984600/… 不错,不知道为什么找不到。 您的朋友应该阅读 C 或 C++ 语言入门。 如果你对 C 的语法和概念不可靠,你不应该试图解释事情......你只会误导。 【参考方案1】:

通常,. 用于当你有一个结构可以直接访问时,-> 当你有一个指向结构的指针并且需要取消引用它来访问结构时。

a->b(*a).b 的语法糖。在 C 和 C++ 中都是一样的。

【讨论】:

【参考方案2】:

myPtr->someVariable(*myPtr).someVariable 相同(取消引用 myPtr,访问成员)。如果您有*myPtr.someVariable,它会将(myPtr.someVariable) 视为指针(访问成员,取消引用整个事物作为指针)。

【讨论】:

【参考方案3】:
pointersomething->member

是一样的
(*pointersomething).member

它作为一种捷径存在,理论上可以做到

*pointersomething.member

但是 .运算符的优先级高于 * 运算符,因此括号是必需的,因此需要箭头快捷方式。

【讨论】:

以上是关于箭头与点语法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Vue箭头函数

ES6新增语法——函数和参数

“点括号”语法的含义是啥? [复制]

linux编辑基本语法

linux编辑基本语法

linux编辑基本语法