c语言输出函数中为什么a[2]表示一个元素

Python017

c语言输出函数中为什么a[2]表示一个元素,第1张

如果 a 是一维数组,则语句和表达式中的 a[2] 表示数组的一个元素。数组的下标从0起算,a[2] 则是 第三个元素。

a[2] 也可以表示成指针指向的值的形式 *(a+2)。

例如:

int a[]={1,2,3,4,5}

printf("%d %d\n", a[2], *(a+2))

输出 3 3

a[2]

=

*(a+2)

a其实是地址值,是数组首个元素的地址

这也就解释了为什么

a[0]

为什么是第一个元素

,因为*(a+0)=*a

那么&a[2]=

&*(a+2)//&和*抵消

=a+2

即第一个地址

在往后面数两个地址,即数组第三个元素的地址值

'a'+2表达式合法,其值为字符'c'

ascii码数字,字母都是从小到大连续排序的,所以字符'a'后的第2个字符就是'c'