C语言指针运算:基本类型相同指针间的限制
基本类型相同的两个指针变量之间不能进行算术运算(包括加减乘除)、逻辑运算和比较运算。
例如,以下代码是错误的:
int *p1, *p2;
p1 = p2 + 1; // 错误:指针不能直接进行加法运算
原因:
指针变量存储的是内存地址,而不是数据值。对指针进行加减运算实际上是在操作内存地址,而不是数据值。因此,对指针进行加减运算的结果是另一个内存地址,而不是数据值的加减结果。
注意:
- 指针可以与整数进行加减运算,例如
p1 + 1表示指向下一个内存地址的指针。 - 指针之间的比较运算可以判断指针指向的内存地址的大小关系。
- 指针运算需要谨慎使用,避免出现内存越界等错误。
原文地址: https://www.cveoy.top/t/topic/nfnj 著作权归作者所有。请勿转载和采集!