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'