共用体变量定义如下:union un1{int i; char ch[2];}a;赋值如下:a.ch[0]='B';

共用体变量定义如下:union un1{int i ; char ch[2];}a;赋值如下:a.ch[0]=‟B‟;a.ch[1]=‟A‟;则printf(“%d\n”,a.i); 输出结果是

呵呵,这个蛮有意思。
这个共用体,实际上表示,i的低2字节,分别是ch[1]和ch[0],类似于i='AB',之所以结果不是4042。是因为,char占用1个字节,需要考虑前导0的问题。

字符A、B的十进制值分别是40和42,换成二进制,分别是:
A:101010 加上前导0:00101010
B:101000 加上前导0:00101000
组合在一起:0010101000101000 = 10792追问

先谢谢啦,可是我还是没看懂,可以再解释吗?

追答

你得知道啥叫内存布局,啥叫ASCII码才行。

追问

AB不是65和66吗?

温馨提示:内容为网友见解,仅供参考
无其他回答

...un1{int i; char ch[2];}a;赋值如下:a.ch[0]='B';
回答:呵呵,这个蛮有意思。 这个共用体,实际上表示,i的低2字节,分别是ch[1]和ch[0],类似于i='AB',之所以结果不是4042。是因为,char占用1个字节,需要考虑前导0的问题。 字符A、B的十进制值分别是40和42,换成二进制,分别是: A:101010 加上前导0:00101010 B:101000 加上前导0:00101000 组合...

union pw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf...
因为这是一个共用体,赋值会刷新。所以那个139.6是个随机数

共用体变量定义为"union data{char ch;int x;}a;",下列错误的是
A错误,因为ch和x共用一个内存空间,所以叫做共用体。但是它有多大呢? 在某些系统int是4个字节的,char是1个字节。所以a就是最大的那个,也就是4个字节,这样的话既可以装下int类型的x,也可以装下ch。找工作的时候,考这个喔,呵呵。

...了如下共用体变量:union date {int i; char ch; float f;}b; 则...
union date {int i; char ch; float f;}b,共用体占四个字节,struct{int x; float f}是8个字节,int与float在32位系统都是占用四个字节

若有以下说明和定义语句:union uti {int n;double g;char ch[9];}
union uti {int n;double g;char ch[9];} 这是个共用体,意思其中的三个变量共用同一块内存空间 其空间大小按其中某个变量(占内存最大的)来算。一般机器上int 占四个字节,double占8个字节 这里最大的一个变量是 ch , 它占九个字节,所以uti 的空间大小为9 float 占四个字节 结构...

有变量定义如下: char ch=’F’; 则表达式 ch>’A’&& ch<=’Z’的...
有变量定义如下: char ch=’F’; 则表达式 ch>’A’&& ch<=’Z’的值是 true

c语言 共用体的问题
首先:公用体和结构体最大的不同就是公用内存。接着看你的程序:你定义的short整型变量x,我们知道它的长度是2字节,char ch 长度也是2字节,我们知道了它们公用一段长度为2字节的内存 定义u.x=100,它的十六进制表示为64H, 在内存中的编码为:00000110 00000100 定义字符数组u.ch[0]=‘a',u....

c语言中的共用体是什么?
可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为:union data \/*共用体*\/ { int a;float b;double c;char d;}mm;其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。main( ){ union data { int a...

设char ch; 以下不正确的赋值语句是___.
这些进制都是转换成为 ascii 码存放到 ch中的实际上的 字符变量存放的也是ascii码(数字) D "" 双引号表示的是字符串 会自动在最后添加'\\0’ 例如char szbuf[] = {"a"} sizeof(a) 结果就是2 '' 单引号表示的是 字符 例如char szbuf[] = {’a‘} sizeof(a) 结果就是1 本回答由提问者推荐 举报...

2013计算机二级C语言完整预测试题及答案一
C)循环体语句一次也不执行 D)循环体语句执行一次 17.对表达式for(表达式1; ;表达式3)可理解为 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 18.以下程序的输出结果是 main() { int a,i;a=0; for(i=1;i<5;i++) ...

相似回答