若有定义:union un{char c; int i; double d;}x; int y; 则以下语句中正确的是()。 A. x=10.5; B. y=x; C. x.c=101 D. printf("%d",x);
时间: 2023-12-04 08:02:19 浏览: 70
SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解
选项 A 是错误的,因为将一个浮点数赋值给一个联合体变量会导致其他成员的值被破坏。
选项 B 是错误的,因为将一个联合体变量赋值给一个整数变量只能保留其中的一个成员的值,并且由于 int 类型的大小与 double 类型的大小不同,这种转换可能会导致数据的丢失。
选项 C 是正确的,因为可以通过成员选择运算符来访问联合体中的成员。
选项 D 是错误的,因为不能将一个联合体变量作为整数类型的参数传递给 printf 函数,并且由于联合体中不同成员的大小和类型可能不同,直接输出联合体的值也没有意义。
因此,正确答案是 C。
阅读全文