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]
我能想到的运算符列表:
- 赋值运算符 -
ptr = some other pointer
- 解引用运算符 -
*ptr
.
- 数组运算符 -
ptr[N]
.
- 成员访问运算符
ptr->
如果 T
是 struct/class。
- pre 和 post 递增运算符 -
++ptr
和 ptr++
.
- pre 和 post 自减运算符 -
--ptr
和 ptr--
.
- 递增和赋值运算符 -
ptr += N
.
- 自减和赋值运算符 -
ptr -= N
.
- 一元
+
运算符:+ptr
。请注意,这在 C99 中无效。它仅在 C++ 中有效。
- 二进制
+
运算符 - ptr + N
.
- 二进制
-
运算符 - ptr - N
和 ptr1 - ptr2
.
- 等于:
ptr == some other pointer
.
- 不等于:
ptr != some other pointer
.
- 一元非运算符:
!ptr
.
- 小于运算符:
ptr < some other pointer
.
- 小于等于运算符:
ptr <= some other pointer
.
- 大于运算符:
ptr > some other pointer
.
- 大于等于运算符:
ptr >= some other pointer
.
- 运营商地址:
&ptr
.
对于给定的 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]
我能想到的运算符列表:
- 赋值运算符 -
ptr = some other pointer
- 解引用运算符 -
*ptr
. - 数组运算符 -
ptr[N]
. - 成员访问运算符
ptr->
如果T
是 struct/class。 - pre 和 post 递增运算符 -
++ptr
和ptr++
. - pre 和 post 自减运算符 -
--ptr
和ptr--
. - 递增和赋值运算符 -
ptr += N
. - 自减和赋值运算符 -
ptr -= N
. - 一元
+
运算符:+ptr
。请注意,这在 C99 中无效。它仅在 C++ 中有效。 - 二进制
+
运算符 -ptr + N
. - 二进制
-
运算符 -ptr - N
和ptr1 - ptr2
. - 等于:
ptr == some other pointer
. - 不等于:
ptr != some other pointer
. - 一元非运算符:
!ptr
. - 小于运算符:
ptr < some other pointer
. - 小于等于运算符:
ptr <= some other pointer
. - 大于运算符:
ptr > some other pointer
. - 大于等于运算符:
ptr >= some other pointer
. - 运营商地址:
&ptr
.