关于数组 与 指针的面试题

简介

查看输出结果 2 5

参考链接

https://blog.csdn.net/wanghao109/article/details/11605577

code

int main() { 
	int a[5] = { 1,2,3,4,5 }; 
	int* ptr = (int*)(&a + 1);
	printf("%d %d
", *(a + 1), *(ptr - 1)); 
}
int main()
{
	int a[5] = {1,2,3,4,5};
	int(*ptr)[5] = &a;
	//注意a等价于&a[0],只表示一个元素的地址。&a才表示数组的地址
	//&a表示数组指针,a表示int型整数指针
	//printf("%p %p
",a,&a);//虽然这里打印的值一样,但表示的含义不一样
	int* p = (int*)(ptr + 1);
	printf("%d %d
", *(a + 1), *(p-1));
	return 0;
}
Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
原文地址:https://www.cnblogs.com/eat-too-much/p/14813782.html