【问题标题】:Arrow vs dot syntax? [duplicate]箭头与点语法? [复制]
【发布时间】:2013-06-18 03:35:55
【问题描述】:

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

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

【问题讨论】:

  • 不错,不知道为什么找不到。
  • 您的朋友应该阅读 C 或 C++ 语言入门。
  • 如果你对 C 的语法和概念不可靠,你不应该试图解释事情......你只会误导。

标签: c++ c syntax


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      pointersomething->member
      

      是一样的
      (*pointersomething).member
      

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

      *pointersomething.member
      

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

      【讨论】:

        猜你喜欢
        • 2020-10-19
        • 2018-06-15
        • 1970-01-01
        • 1970-01-01
        • 2019-07-22
        • 1970-01-01
        • 2014-11-06
        • 2018-06-08
        • 1970-01-01
        相关资源
        最近更新 更多