面试题8——a和&a有什么区别?

例:

void main()
{
	int a[5]={1,2,3,4,5};
	int*ptr=(int*)(&a+1);
	printf("%d,%d",*(a+1),*(ptr-1));
}

输出结果为:2,5;

数组名a可以作数组的首地址,而&a是数组的指针。

当intptr=(int)(&a+1)改为intptr=(int)(a+1)时,输出结果为:1

猜你喜欢

转载自blog.csdn.net/weixin_42323413/article/details/84868121