-4

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

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

4

3 回答 3

6

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

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

于 2013-06-21T04:52:36.010 回答
3

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

于 2013-06-21T04:53:30.853 回答
1
pointersomething->member

是一样的

(*pointersomething).member

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

*pointersomething.member

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

于 2013-06-21T04:54:59.383 回答