C语言:小问题~书上这段儿我看了好几遍都没看懂这句话啥意思~~~

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:33:03
c语言规定,a+1,a+2,a+3,a+4分别代表a[1],a[2],a[3],a[4]的地址,而且当p指向a时,p+1,p+2,p+3,p+4也分别指向a[1],a[2],a[3],a[4]
因此*(a+i)和*(p+i)都代表a[i](i=0,1,2,3,4)

最后一句话我不明白了 *(p+i)我明白 但*(a+i)是怎么回事儿啊?不懂...

因为p=a,所以*(p+i)=*(a+i)一回事,既然你明白*(p+i)那应该就明白*(a+i)的,a表示a[0]也就是数组的首地址,a+i表示第n+1个地址,*(a+i)表示第n+1个地址里面的值也就是 a[i]。

a是数组的名字也是数组的初始地址喽,
也就是a[0]的地址哦

数组名就是该数组在内存空间的首地址,比如定义了一个数组int a[5],
那么数组的首元素a[0]就等于*a.