#include<stdio.h>
union int_st
{
int k;
char ch[2];
};
main()
{
union int_st x;
x.ch[0]='M';
x.ch[1]='n';
printf("k=%d\nk=%X\n%c\n",x.k,x.k,x.ch);
}
那个调用没问题的
追答你写入的时候是 x.ch[0]='M';x.ch[1]='n'; 这明明是数组。
而 %c 是 char 而不是 char[2]!
我明白了,int 占4字节,char 1字节,char赋值给int时高位是空的,具体是什么值我也不太清楚,你说的那个问题也是个问题,谢谢你的回答