填空题 联合变量有以下三个主要用途:(1)节省内存空间;(2)在数据处理问题中,可以用一个数据域存放不同类型的对象; 1 2
【正确答案】
【答案解析】便于不同类型间的转换。 [解析] 在程序中定义联合变量到底做什么用,这个问题令初学者感到困惑,我们试图通过本题的分析帮助读者解开此困惑。联合变量的第一个用途“节省内存空间”。考察下面的例子可以帮助我们理解联合变量的第二用途和第三用途:
(1)#include<stdio.h>
(2)int main(){
(3)union data{
(4)short i;
(5)char c;
(6)}u1;
(7)u1.i=65;
(8)printf("u1.i=%d u1.c=%c/n", u1.i, u1.c);
(9)u1.c="b";
(10)printf("u1.i=%d u1.c=%c/n", u1.i, u1.c);
(11)return 0;}
该程序运行后,输出:u1.i=65 u1.c=A
u1.i=98 u1.c=b
该程序给联合变量u1分配的内存空间为2个字节,程序的第7行给u1.i赋值,实际上是将一个整数65存入该数据域中;程序的第9行给u1.c赋值,实际上是将一个字符b存入该数据域中,也即一个联合变量可以在不同的时候存放不同类型的数据对象。其次,我们通过观察程序的第8行和第10行及执行结果(所输出的内容),可以发现第8行中,u1.c将u1.i的值65转换为字符A,在第10行中,u1.i将u1.c的值"b"转换为整数98。