先粘原题
#include <stdio.h>
int main()
{
int a = 'abc';
printf("%s\n", &a);
return 0;
}
输出结果为:cba
分析:
1,a为整型(表笑话,我开始就没留意);
2,'abc'被扩展为整型,整型在32位机上占用4个字节,因此a的实际内存分配为0x00616263;
3,如果为大端机,则a的实际排列为0x63626100,结尾正好为\0;如果为小端机,则为abc;
本文详细解析了C语言中字符数组'a'被赋值为'abc'后,在不同大小端机器上的内存布局及输出结果的变化,并通过实例分析了输出结果的形成过程。
先粘原题
#include <stdio.h>
int main()
{
int a = 'abc';
printf("%s\n", &a);
return 0;
}
输出结果为:cba
分析:
1,a为整型(表笑话,我开始就没留意);
2,'abc'被扩展为整型,整型在32位机上占用4个字节,因此a的实际内存分配为0x00616263;
3,如果为大端机,则a的实际排列为0x63626100,结尾正好为\0;如果为小端机,则为abc;
4031
472
1122
1586

被折叠的 条评论
为什么被折叠?