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