|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
union UNION
{
int i;
char a[4];
};
int main(int argc, char* argv[])
{
UNION aUnion;
aUnion.i = 56;
cout << aUnion.a[0] << endl;
cout << aUnion.a[1] << endl;
cout << aUnion.a[2] << endl;
cout << aUnion.a[3] << endl;
system("pause");
return 0;
}
为何输出结果是8
- #include <iostream>
- using namespace std;
- union UNION
- {
- int i;
- char a[4];
- };
- int main(int argc, char* argv[])
- {
- UNION aUnion;
- aUnion.i = 56;//56存储结果为:00000000 00000000 00000000 00111000,小端存储,所以56在最前面,后面三个字节都是0
- cout << aUnion.a[0] << endl; //输出的是ASCII为56的字符,即8
- cout << aUnion.a[1] << endl; //输出的是ASCII为0的字符,什么也没有
- cout << aUnion.a[2] << endl; //输出的是ASCII为0的字符,什么也没有
- cout << aUnion.a[3] << endl; //输出的是ASCII为0的字符,什么也没有
- system("pause");
- return 0;
- }
复制代码
可以看看我这个帖子: C语言中浮点数存储与%f输出细节探究
|
|