之前在学习指针时,我们知道指针其实也是一种变量,既然这样,那么指针应该和普通变量一样,可以进行算术运算。下面我们介绍指针的加减运算。 先看一个实例: #include <stdio.h> int main() { int arr[10] = {1,2,3,4}; int *p = arr; *p = 10; printf("%d\n",*p); p++; *p = 20; printf("%d\n",*p); return 0; } 假设其首地址为1000, 则整个数组对应的地址如下: 图1 数组arr对应地址 图2 修改数组arr首元素的内容 图3 指针p向后移一个数组 十进制的2转化为十六进制为0x00000002。因电脑使用的小端,即低地址存放小数据,如下图所示: 图4 前两个数组元素 图5 指针p加一个字节 arr[1] 修改为20,如图: 指针p加一个单元格 #include <stdio.h> int main() { int *p = (int *)1000; printf("%d\n",p+5);//1020 printf("%d\n",(short *) p+5);//1010 printf("%d\n",(unsigned long *)p+5);//1020 printf("%d\n",(double *)p+5);//1040 printf("%d\n",