C语言基础学习笔记(11):指针与数组的关系
图: 北英格兰,惠特比港(Whitby Harbour)
Guderian出品
指针与一维数组的关系
一维数组在内存中是线性排列的。假设存在一个任意的int
类型数组a[N]
,数组名a
代表了数组的首地址&a[0]
,则&a[i]
等价于(a+i)
。注意这里a+1
不是加上1
个字节,而是取决于a
的基类型(这里是int
,即为4
个字节):a+1
等价于a+sizeof(基类型)
。因此我们可以得出一维数组元素的等价引用形式:a[i]
等价于*(a+i)
。下面举两个例子:
示例一
用指针读入一维数组并用指针输出一维数组:
1 |
|
示例二
示例一的另一种实现方式:
1 |
|