选题一
见相关资料:浮点数的二进制表示
选题三
问题
printf("%s\n",c)对应输出"eUNH"呢?
解答
先说一下打印字符串的方法:以c为首地址,依次打印每一个字节,遇到ASCII码为0的字节停止(即遇到字符串终止符'\0')。
我们知道c数组的第一个int,占4个字节,每个字节的ASCII码分别为72('H')、78('N')、85('U')、101('e');第二个int每个字节的ASCII码分别为114('r')、0('\0')、0('\0')、0('\0')。
先说结论,我们的机器是“小端”,即小地址保存的是低位。
所以,这2个int(8个字节)的排列为'e' 'U' 'N' 'H' '\0' '\0' '\0' 'r',打印的结果也就不言而喻了。
选题五
问题:如何编程判断机器是“大端”还是“小端”?
扫描二维码关注公众号,回复: 9055599 查看本文章![]()
解答:以下函数,返回1则为小端
int checkSystem(void) { int i = 0x12345678; char *c = &i; return ((c[0] == 0x78) && (c[1] == 0x56) && (c[2] == 0x34) && (c[3] == 0x12)); }