箭头vs点语法?

时间:2013-06-21 04:51:20

标签: c++ c syntax

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

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

3 个答案:

答案 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

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