最近我学习C语言到了共用体这一段了,当中有个疑问请大家帮忙解释一下就是,共用的在内存中的存储数据的区域是当中最大的变量数据类型所在的区域,比如一个int和一个char型那么它的内存所在区域就在int的地址,有两个字节,可是int与char明明是在两个不同数据类型的所在区域,他们又如何在共用体是相处在一起呢?
>> 本文固定链接: http://www.vcgood.com/archives/1863
最近我学习C语言到了共用体这一段了,当中有个疑问请大家帮忙解释一下就是,共用的在内存中的存储数据的区域是当中最大的变量数据类型所在的区域,比如一个int和一个char型那么它的内存所在区域就在int的地址,有两个字节,可是int与char明明是在两个不同数据类型的所在区域,他们又如何在共用体是相处在一起呢?
>> 本文固定链接: http://www.vcgood.com/archives/1863
你必须先 登录才能发表评论。
[quote]int与char明明是在两个不同数据类型的所在区域[/quote]
1、共用体同一内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一种,而不是同时存放几种。也就是说,每一瞬时只有一个成员起作用,其他的成员是不起作用的,即不是同时存在和起作用。
2、共用体变量中起作用的成员是最后一次存放的成员,在存入新成员之后原有的成员就失去作用。
3、共用体变量的地址和他各成员的地址都是同一地址。(可以由以上两条推出)
——以上摘自谭浩强《c程序设计(第三版)》