指针(大小端字节序)
题目代码:
#include <stdio.h>//x86环境下
int main()
{
int a[4] = { 1, 2, 3, 4 };
int* ptr1 = (int*)(&a + 1);
int* ptr2 = (int*)((int)a + 1);
printf("%x,%x", ptr1[-1], *ptr2);
return 0;
}
#include <stdio.h>//x64环境下
int main()
{
int a[4] = { 1, 2, 3, 4 };
int* ptr1 = (int*)(&a + 1);
int* ptr2 = (int*)((long long)a + 1);
printf("%x,%x", ptr1[-1], *ptr2);
return 0;
}
解释:
思路:
结果:4,2