C语言下面第五题为什么选D而不是A?
展开全部
因为有个a.k=0;
而a.k和a.u.x是共用一个内存地址或空间,所以在a.k=0;的时候,实际就把a.u.x=4设置成了a.u.x=0,也就可以理解成a.k是a.u.x的别名,操作其中的一个值,另一个将随之改变。
所以本题应该选择:D
请好好复习理解联合体(union):
在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体,也叫联合体。
而a.k和a.u.x是共用一个内存地址或空间,所以在a.k=0;的时候,实际就把a.u.x=4设置成了a.u.x=0,也就可以理解成a.k是a.u.x的别名,操作其中的一个值,另一个将随之改变。
所以本题应该选择:D
请好好复习理解联合体(union):
在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体,也叫联合体。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询