【发布时间】:2020-04-01 19:42:25
【问题描述】:
我有以下代码:
int main ( void ) {
unsigned int array [] = { 298 , 0 x1A2A3A4A };
unsigned char *p = ( unsigned char *) array ;
for (int i = 4; i < 8; i ++) {
printf ("% hhX ", p[i]) ;
}
printf ("\ nThe Answer is %d or %d!\n", p[0] , p [6]) ;
return EXIT_SUCCESS ;
}
我不明白输出:
4A 3A 2A 1A
The Answer is 42 or 42
【问题讨论】:
-
你的系统是小端的,所以字节向后打印,你的数组值 p[6] 是 2A 或 42 作为十进制。 p[0] 是 42,因为讽刺的是 298 的最高位也是 2A。