c++中指针操作符的列表

List of operators on pointers in C++

本文关键字:列表 操作符 指针 c++      更新时间:2023-10-16

对于c++中给定的原始指针类型T* ptr,在其上定义的所有操作符的列表是什么?

我能想到的操作符列表:

  1. 赋值操作符- ptr = some other pointer
  2. 解引用操作符- *ptr .
  3. 数组操作符- ptr[N] .
  4. 如果T是struct/class,则成员访问操作符ptr->
  5. 前递增操作符和后递增操作符——++ptrptr++
  6. 前后递减运算符——--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 .

假设

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]