有以下程序#include lt;stdio.hgt;union pw{ int i; char ch[2];}a;main(){ a.ch[0]=13;a.

计算机 程序 已帮助 人

有以下程序#include <stdio.h>union pw{ int i; char ch[2];}a;main(){ a.ch[0]=13;a.ch[1]=0; printf("%d\n",a.i);} 程序的输出结果是A.13 B.14C.0 D.20

热搜:以下哪个程序是正确的病史采集的程序

答案解析

难度★★☆ 搜索
  • 参考答案:A本题主要考查联合体的内容。关于联合体,我们需要注意以下几个特点。(1)联合体不允许做初始化赋值,赋值只能在程序中进行。(2)由于联合体成员共享存储空间的原因,导致一个联合体变量每次只能给一个成员变量赋值,而且联合体中所有成员的首地址相同,即都是变量的地址。(3)联合体的存储空间与其成员变量中所需空间最大的变量保持一致,即联合变量的长度等于各成员中最长的长度。在本题中,程序首先定义了一个联合体和一个该联合体的联合体变量a,在主函数中,分别用两条语句给联合体成员赋值,由于ch是一个数组,它的元素仍按普通数组一样排列。程序要求的输出结果是a.i,由于联合体中所有成员的首地址相同,即a.i与a.ch的首地址相同,而在ch中第一个元素为13,因此,输出a.i的结果就为13。本题正确的答案是A。