假设机器具有小端架构并提供输出
int a[]={0x4142,0x0044,0x4441,0x0044};
char *b;
b=(char *)a;
printf(b);
我无法理解输出。
答案 0 :(得分:0)
整数通常为4个字节,因此a
的第一个值为0x00004142
。
机器是小端,所以如果你把这个值读成一个字符串,它是:
0x42 (B) 0x41 (A) 0x00 (\0) 0x00
。
因此打印的字符串为BA
。
请注意,打印字符串的正确语法是:printf("%s", b);
(http://en.wikipedia.org/wiki/Uncontrolled_format_string)