指针运算

您可以对指针执行有限数量的算术运算。 这些操作是:
  • 增量和减量
  • 加法和减法
  • 比较
  • 转让

增量 (++) 运算符根据指针所引用的数据对象的大小来增加指针的值。 例如,如果指针引用数组中的第二个元素,那么 ++ 会使指针引用数组中的第三个元素。

减量 (--) 运算符根据指针所引用的数据对象的大小来减小指针的值。 例如,如果指针引用数组中的第二个元素,那么 -- 会使指针引用数组中的第一个元素。

可以向指针添加整数,但不能向指针添加指针。

如果指针 p 指向数组中的第一个元素,那么以下表达式会使指针指向同一数组中的第三个元素:
p = p + 2;

如果有两个指针指向同一个数组,那么可以从另一个指针中减去一个指针。 此操作将生成数组中用于分隔指针所引用的两个地址的元素数。

可以将两个指针与以下运算符进行比较: ==!=<><=>=

仅当指针指向同一数组的元素时,才会定义指针比较。 即使指针指向不同数组的元素,也可以执行使用 ==!= 运算符的指针比较。

您可以向指针分配数据对象的地址,另一个兼容指针的值或 NULL 指针。

IBM 扩展 为指向向量类型的指针定义指针算术。 假设:
vector unsigned int *v;
表达式 v + 1 表示指向向量 v 的指针。IBM 扩展