怎么用指针访问数组元素?
指针是C语言中很重要的一部分内容,可以说是C语言的精髓,但是指针在初学的时候确实比较难理解,尤其是与数组混在一起之后,很容易搞混淆。下面讲解一下指针如何访问数组,及注意事项。
首先看几张图。
上图中,定义了一个int型数组,有4个元素,定义了指针变量p。p=&a[0]的意思是将首元素的地址赋值给指针变量。
p=a的意思是将首元素的地址赋值给指针变量。
*p=a的意思是将首元素的地址赋值给指针变量,在声明的时候完成了赋值。
由以上可以看出,p=&a[0],p=a,*p=a 三者的含义是一致的。
数组名a代表的就是数组地址,所以p=&a[0],p=a,二者是等价的。
声明时赋初值:
int *p=&a[0] 和 int *p=a是一致的。
通过指针引用数组元素时:a[1]=*(p+1)。
必须要注意的是:
a:数组首元素的地址(每个元素都是int类型)。
a+2:数组的第3个元素的地址。
* (a+2):数组的第3个元素的地址。
采用指针访问数组时速度要快于直接访问数组的下标,所以指针的效率要比数组高很多。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。