int a[5]={1,2,3,4,5}
1,a与&a[0]是完全相同的,包括含义和值。
含义:数组的首元素的首地址
值为:0X0012ff6c
2,&a与a,&a[0]的含义不同,值相同
含义:整个数组的首地址
值为:0X0012ff6c
3,a+1
含义:数组下一个元素的地址,即元素2的首地址*(a+1)=2
值为:0X0012ff6c+1*sizeof(int)
4,&a+1
含义:下一个数组的首地址
值为:0X0012ff6c+5*sizeof(int)
若int *p=(int *)(&a+1)
则*(p-1)=5
个人认为,对a,&a[0]的操作即是对数组首元素或者数组元素的操作,对&a的操作是对整个数组的操作。
本文详细解析了C语言中数组与指针的关系,重点介绍了a、&a[0]、&a等概念的区别及联系,并通过具体示例阐述了它们在内存中的地址表现形式。
231

被折叠的 条评论
为什么被折叠?



