C 语言共用体变量在程序运行期间,满足( )。
C语言共用体变量在程序运行期间,满足()。A)所有成员都不驻留内存B)只有一个成员驻留内存C)部分成员驻留内存D)所有成员一直驻留内存...
C 语言共用体变量在程序运行期间,满足( )。
A) 所有成员都不驻留内存
B) 只有一个成员驻留内存
C) 部分成员驻留内存
D) 所有成员一直驻留内存 展开
A) 所有成员都不驻留内存
B) 只有一个成员驻留内存
C) 部分成员驻留内存
D) 所有成员一直驻留内存 展开
4个回答
展开全部
选 (B)
共用体是一种能够在同一个存储空间内(但不同时)存储不同类型的数据的数据类型。
//定义共用体对象student
union
{
int age;
double weight;
char name;
}student;
//打印student以及它的所有成员的地址,发现地址值都是一样的。
//这表明共用体的所有成员共用同一个存储空间,所有成员的名字对应的都是同一个内存位置。
printf("%p,%p,%p,%p\n",&student,&student.age,&student.weight,&student.name);
//对其中一个成员赋值,打印其它成员的值都是一样的。
//再次表明共用体的所有成员共用同一个存储空间。
student.age = 18;
printf("%d,%d,%d\n",student.age,student.name,student.weight);
//再对另一个成员赋值,新的值会覆盖掉原来的值。
//这表明只允许一个成员驻留在内存中。
student.name = 'x';
printf("%c,%c,%c\n",student.age,student.name,student.weight);
共用体是一种能够在同一个存储空间内(但不同时)存储不同类型的数据的数据类型。
//定义共用体对象student
union
{
int age;
double weight;
char name;
}student;
//打印student以及它的所有成员的地址,发现地址值都是一样的。
//这表明共用体的所有成员共用同一个存储空间,所有成员的名字对应的都是同一个内存位置。
printf("%p,%p,%p,%p\n",&student,&student.age,&student.weight,&student.name);
//对其中一个成员赋值,打印其它成员的值都是一样的。
//再次表明共用体的所有成员共用同一个存储空间。
student.age = 18;
printf("%d,%d,%d\n",student.age,student.name,student.weight);
//再对另一个成员赋值,新的值会覆盖掉原来的值。
//这表明只允许一个成员驻留在内存中。
student.name = 'x';
printf("%c,%c,%c\n",student.age,student.name,student.weight);
展开全部
严格一点的答案是:最多只有一个成员驻留内存。因为定义的共用体变量,在你没有进行写操作时,不会分配到内存空间。又或者已经进行过写操作,但是该变量所在的页被换到虚拟内存当中了。因此最多只有一个成员驻留内存。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询