## 数组指针的概念及定义 - 数组元素指针 + 一个变量有地址,一个数组包含若干元素,每个数组元素也有相应的地址, 指针变量也可以保存数组元素的地址 + 只要一个指针变量保存了数组元素的地址, 我们就称之为数组元素指针 ![](https://img-blog.csdnimg.cn/img_convert/69b98c6401a04bf8fce52a78c80b9565.png) ```c printf(“%p %p”, &(a[0]), a); //输出结果:0x1100, 0x1100 ``` >+ 注意: 数组名a不代表整个数组,只代表数组首元素的地址。 >+ “p=a;”的作用是“把a数组的首元素的地址赋给指针变量p”,而不是“把数组a各元素的值赋给 p” ## ## 指针访问数组元素 ![](https://img-blog.csdnimg.cn/img_convert/13c0dd997ce619b1249220ce09610ad4.png) ```c int main (void) { int a[5] = {2, 4, 6, 8, 22}; int *p; // p = &(a[0]); p = a; printf(“%d %d\n”,a[0],*p); // 输出结果: 2, 2 } ``` - 在指针指向数组元素时,允许以下运算: + 加一个整数(用+或+=),如p+1 + 减一个整数(用-或-=),如p-1 + 自加运算,如p++,++p + 自减运算,如p--,--p ![](https://img-blog.csdnimg.cn/img_convert/6c563fff4c62724055337604c2d31623.png) >+ 如果指针变量p已指向数组中的一个元素,则p+1```指向```同一数组中的下一个元素,p-1```指向```同 一数组中的上一个元素。 - 结论: 访问数组元素,可用下面两种方法: + 下标法, 如a[i]形式 + 指针法, *(p+i)形式 ![](https://img-blog.csdnimg.cn/img_convert/e00312fbc775c04e2a449d7d8d473eb9.png) - 注意: + 数组名虽然是数组的首地址,但是数组名所所保存的数组的首地址是不可以更改的 ```c int x[10]; x++; //错误 int* p = x; p++; //正确 ``` ## 最后,如果有任何疑问,请加微信 **leader_fengy** 拉你进学习交流群。 开源不易,码字不易,如果觉得有价值,欢迎分享支持。