数组名表示数组的首元素的地址,数组的首地址和数组首元素的地址
int main()
{
int arr[]={9,8,7,6,5,4,3,2,1,0 };
printf(%p\n ,arr[0]);//打印数组的第一个地址
printf(%p\n ,arr);//打印数组的第一个地址
printf(%p\n ,arr);//打印数组的地址
返回0;
}
注意第二张和第三张之间的区别。虽然打印出来的结果是一样的,但是意义不一样。
Printf(%p\n ,arr)指数组第一个元素的地址。
Printf(%p\n ,arr)是指数组的地址
我们可以通过下面的程序演示它们之间的区别。
int main()
{
int arr[]={9,8,7,6,5,4,3,2,1,0 };
printf(%p\n ,arr 1);
printf(%p\n ,arr 1);
返回0;
}
从上面程序的第一段我们知道数组第一个元素的地址是0000000000061FDF4,arr 1索引组第二个元素的地址是000000061FDF4,因为int变量占用4个字节;
还有为什么printf(%p\n ,arr 1)的打印结果是000000000061FE18?因为arr是整个数组的地址,所以arr 1是数组的第一个地址加上整个数组占用的字节。数组中有10个元素,一个元素占用4个字节,所以数组占用40个字节,所以打印结果如上。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。