全部问题 > 当前问题

D选项看不懂,能不能解释一下为什么可以把unreal赋值给real?

焦岚 2019-9-19 13:41:03

共 3 个回答

王幸 2019-9-19 15:22:19

data1.unreal=8;

这个就等于把8给了real了

焦岚 2019-9-20 02:11:32

回复 王幸:还是不懂。data2.real不是应该对应data1.real;,然后data2.unreal不是应该对应data1.unreal吗,为什么可以交叉定义?

最佳答案

王幸 2019-9-20 11:16:36

回复 焦岚:没有必须要对应,这个就是简单的复制而已, 比如 int a,b,temp; temp=a;a=b;b=temp;

问题来自: 结构体和共用体
设有定义:
struct complex
{ int real,unreal;} data1={1,8},data2;
则以下赋值语句中错误的是 ______ 。
A. data2=data1;
B. data2=(2,6);
C. data2.real=data1.real;
D. data2.real=data1.unreal;
答案:B
解析:结构体变量可以直接对成员赋值,也可以两个变量之间互相赋值,所以A、C、D都正确。B中的赋值语句是错误的,如果没有初始化,则只能对成员分别赋值。因此选B。