(1)c++中,结构体和共用体的定义类似,都是自定义数据类型,具体到语法,调用成员变量都很类似,当然前者的关键字是struct,后者的关键字是union。他们的含义还是不同的。结构体变量所占内存长度是成员变量所占内存长度之和,即每个变量都有自己独立的内存单元,而共用体变量成员变量所占内存长度等于最长成员的长度。
(2)由上面的内存占有方法可知,共用体内是可以定义多种不同类型数据,但是,同一时刻只有一个成员起作用(因为共用一个内存单元)。而结构体里面是没有这个限制的。
(3)正由于共用体共用一个内存单元,当给共用体成员赋值的时候,它们会互相覆盖,所以只有最后一次的赋值才会有效。
总结:
所以,结构体和共用体之间的差别知道了吧?共用体是节省了内存空间,但是它所带来的数据使用的限定,似乎更加麻烦,没什么实用性。大概是为了兼容c而保留的吧。况且c++中的关键字new,也可以达到union的内存效果,但是用起来方便多了,所以,一般的编程当中我很少用到,不知道一些高端的东西里面有没有其他实用用法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。