union data

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:50:03
union data
{int i;
char c;
float f;
}a;
int n;
则以下语句正确的是
a. a=5; b. a={z,'a',1.2}; c.printf(%d\n",a); d. n=a;

没对的吧.

a,b,c错是因为union变量的成员要用这样.
a.i或a.c或a.f.
对联合变量的赋值,使用都只能是对变量的成员进行。 联合变量的成员表示为: 联合变量名.成员名 例如,a被说明为perdata类型的变量之后,可使用 a.class a.office ,不允许只用联合变量名作赋值或其它操作。 也不允许对联合变量作初始化赋值,赋值只能在程序中进行。还要再强调说明的是,一个联合变量, 每次只能赋予一个成员值。换句话说,一个联合变量的值就是联合变员的某一个成员值。

呵呵,在谭浩强的C习题册上的10.27上的答案好像是B,不知道有没有高手解释一下,谢谢