C++ 指针运算符列表

List of operators on pointers in C++

对于给定的 C++ 原始指针类型,T* ptr,其上定义的所有 operators 的列表是什么?

假设

T* t;

取消引用

(*t).foo

t->foo

指针运算

t = t + 10; t += 10; // will add 10*sizeof(T)
t = t - 10; t -= 10; // will subtract 10*sizeof(T)

--t;
++t;
t--;
t++;

像数组一样访问:(通常不赞成)

t[10]

我能想到的运算符列表:

  1. 赋值运算符 - ptr = some other pointer
  2. 解引用运算符 - *ptr.
  3. 数组运算符 - ptr[N].
  4. 成员访问运算符 ptr-> 如果 T 是 struct/class。
  5. pre 和 post 递增运算符 - ++ptrptr++.
  6. pre 和 post 自减运算符 - --ptrptr--.
  7. 递增和赋值运算符 - ptr += N.
  8. 自减和赋值运算符 - ptr -= N.
  9. 一元 + 运算符:+ptr。请注意,这在 C99 中无效。它仅在 C++ 中有效。
  10. 二进制 + 运算符 - ptr + N.
  11. 二进制 - 运算符 - ptr - Nptr1 - ptr2.
  12. 等于:ptr == some other pointer.
  13. 不等于:ptr != some other pointer.
  14. 一元非运算符:!ptr.
  15. 小于运算符:ptr < some other pointer.
  16. 小于等于运算符:ptr <= some other pointer.
  17. 大于运算符:ptr > some other pointer.
  18. 大于等于运算符:ptr >= some other pointer.
  19. 运营商地址:&ptr.