考核中遇到这样一个问题
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
int *ptr = (int *)(&a + 1);
printf("%d,%d", *(a + 1), *(ptr - 1));
system("pause");
return 0;
}
在考核中第二步不知道该怎么理解,经查阅后,(&a+1)的地址是数组a的首地址再加上sizeof(a),
再将这整个地址转化为int型,所以(ptr-1)的地址就是a数组中最后一个元素的地址,所以*(ptr-1)就为5