一位朋友正在学习数据结构课程,我试图解释链表上下文中的差异。我真的应该知道这一点,但是专注于高级框架,我有点生疏了。我知道“箭头与指针一起使用”,但就是这样。
本质上,在 C 中,访问某个变量的属性时,点和箭头之间有什么区别?另外,因为我的心情特别愚蠢,这在C++中是一样的,还是改变了?
通常.
当你有一个结构可以直接访问时使用,->
当你有一个指向结构的指针并且需要取消引用它来访问结构时。
a->b
是 . 的语法糖(*a).b
。在 C 和 C++ 中都是一样的。
myPtr->someVariable
与(*myPtr).someVariable
(取消引用 myPtr,访问成员)相同。如果您将*myPtr.someVariable
其视为(myPtr.someVariable)
指针(访问成员,将整个事物取消引用为指针)。
pointersomething->member
是一样的
(*pointersomething).member
它作为一种捷径存在,理论上可以做到
*pointersomething.member
但是 . 运算符的优先级高于 * 运算符,因此括号是必需的,因此需要箭头快捷方式。