#include <stdio.h>
void main()
{
int a = 0x12345678;
int b = 0x567890AB;
int c = 0x7890ABCD;
char * p = (char*)&a;
char * q = p + 2;
int x = *(int*)q;
printf("x=%X",x);
}
其实这个结果是不确定的,主要还是看编译器在a的地址后面填充的是什么东西。
#include <stdio.h>
int main()
{
int b = 0x567890AB; //调换下位置
int a = 0x12345678;
int c = 0x7890ABCD;
char * p = (char*)&a;
char * q = p + 2;
int x = *(int*)q;
printf("x=%X",x);
return 0;
}
90AB1234