C语言求解!为什么答案是269?求超详细过程!

#include <stdio.h>
union pw
{
int i;
char ch[2];
}a;
void main()
{
a.ch[0]=13;
a.ch[1]=1;
printf("%d\n",a.i);
}

第1个回答  2018-01-19
这是因为:
1*256+13=269追问

256何来?

追答

这是因为一个char占用1个字节(8个二进制位),2的8次方=256

追问

怎么知道char占有多少个字节?

追答

char就是用于存放一个字节的,所以肯定是1个字节。
也可以在程序中用printf("%d",sizeof(char));进行查看。

追问

#include
union pw
{
int i;
char ch[3];
}a;
void main()
{
a.ch[0]=13;
a.ch[1]=1;
a.ch[2]=1;
printf("%d\n",a.i);
}
那这题答案为什么是65805

追答

1*256*256+1*256+13=65805

追问

这又为何?

追答

这可以看作是256进制吧。

追问

a.ch[0] a.ch[1] a.ch[2] 是什么意思啊?

追答

就是数组的三个元素的值啊

追问

存在什么关系吗?

相似回答