箭头与点语法? [复制]
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
但是 .运算符的优先级高于 * 运算符,因此括号是必需的,因此需要箭头快捷方式。
【讨论】:
以上是关于箭头与点语法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章