易采站长站为您分析简单分析C++指针的操作和运算的相关资料,需要的朋友可以参考下
既然指针是一种数据类型,那么它也应该有对应的操作或运算,正如整数能做加减乘除一样。但是每一种操作或运算都应该对这种数据类型有意义。比如两个实数可以用关系运算得知哪个大哪个小,而两个虚数却不能使用关系运算,因为比较虚数的大小是没有意义的。
对于指针类型来说,可以使用的运算有:和整数做加法运算、和整数做减法运算、两指针做关系运算。很显然,指针类型的乘除法是没有意义的,也是不允许的。
指针的加减运算
指针的加减法和数的加减法是不同的。我们认为,指针只能够和整数做加减法运算(包括和整型常量、变量做加减法和自增自减)。其实这也不难理解,内存的存储空间是按“个”计算的,不会出现半个存储空间的情况。那么,指针的加减法是否在地址值上做加减呢?我们先写一段程序来验证一下指针加减法的运算结果:(程序8.3)
- #include "iostream.h" int main()
- { int a[5]={1,2,3,4,5};
- int *aptr=&a[0];//把数组首元素的地址给指针 int i=1;
- for (int j=0;j<5;j++) {
- cout <<'(' <<aptr <<")=" <<*aptr <<endl;//输出指针内存储的地址和该地址的数据 aptr=aptr+i;//指针和整型变量做加法
- } return 0;
- }
运行结果:
- (0x0012FF6C)=1 (0x0012FF70)=2
- (0x0012FF74)=3 (0x0012FF78)=4










