基本类型相同的两个指针变量之间不能进行算术运算(包括加减乘除)、逻辑运算和比较运算。

例如,以下代码是错误的:

int *p1, *p2;

p1 = p2 + 1; // 错误:指针不能直接进行加法运算

原因:

指针变量存储的是内存地址,而不是数据值。对指针进行加减运算实际上是在操作内存地址,而不是数据值。因此,对指针进行加减运算的结果是另一个内存地址,而不是数据值的加减结果。

注意:

  • 指针可以与整数进行加减运算,例如 p1 + 1 表示指向下一个内存地址的指针。
  • 指针之间的比较运算可以判断指针指向的内存地址的大小关系。
  • 指针运算需要谨慎使用,避免出现内存越界等错误。
C语言指针运算:基本类型相同指针间的限制

原文地址: https://www.cveoy.top/t/topic/nfnj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录