c++ 中 共用体和结构体比较
(1)c++中,结构体和共用体的定义类似,都是自定义数据类型,具体到语法,调用成员变量都很类似,当然前者的关键字是struct,后者的关键字是union。他们的含义还是不同的。结构体变量所占内存长度是成员变量所占内存长度之和,即每个变量都有自己独立的内存单元,而共用体变量成员变量所占内存长度等于最长成员的长度。
(2)由上面的内存占有方法可知,共用体内是可以定义多种不同类型数据,但是,同一时刻只有一个成员起作用(因为共用一个内存单元)。而结构体里面是没有这个限制的。
(3)正由于共用体共用一个内存单元,当给共用体成员赋值的时候,它们会互相覆盖,所以只有最后一次的赋值才会有效。
总结:
所以,结构体和共用体之间的差别知道了吧?共用体是节省了内存空间,但是它所带来的数据使用的限定,似乎更加麻烦,没什么实用性。大概是为了兼容c而保留的吧。况且c++中的关键字new,也可以达到union的内存效果,但是用起来方便多了,所以,一般的编程当中我很少用到,不知道一些高端的东西里面有没有其他实用用法。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。