c++中的结构体和联合体有什么区别
听说:结构是所有的数据类型的内存的总和!联合是申明的类型里面的最大的类型的内存结构体懂了一点,但是联合体的内存好是不懂,请高手赐教,越详细越好,谢谢!...
听说: 结构是所有的数据类型的内存的总和!
联合是申明的类型里面的最大的类型的内存
结构体懂了一点,但是联合体的内存好是不懂,请高手赐教,越详细越好,谢谢! 展开
联合是申明的类型里面的最大的类型的内存
结构体懂了一点,但是联合体的内存好是不懂,请高手赐教,越详细越好,谢谢! 展开
4个回答
展开全部
1. 区别
结构体是多个不同类型变量的组合,其占用的内存大小是所有变量大小的总和
联合体是多个不同类型变量的抽取,其占用内存的大小是联合体中最大的那个变量的大小
2. 解释
结构体中的多个变量同时存在,你可以给其中的每个变量分别赋值。任何一个变量被赋值不影响其他变量。你在需要使用时每个变量都可以同时被取出使用。
联合体中的多个变量同时只有一个存在。你只能给其中的一个变量赋值。你在给联合体的任何一个变量赋值的时候就覆盖了其他的变量,也就是说只有你刚赋值的这个变量存在,其他都被覆盖掉了
3. 用途
结构体和联合体都用于需要把一组变量联合考虑的场合。结构体变量清晰,便于使用,尤其是要表述一个对象的多个属性时方便有效。但是要占用比较大的内存
联合体同时只有一个变量存在,占用资源少,有助于提高编程效率,但是使用不如结构体这么方便和清晰。
请参考 http://zhidao.baidu.com/link?url=ypbVYByx_M2PNWkCi0zer2GMT3Jc7xP5KXz2U1dUwsGIJTSpxwIJsgdOcJtZ-QyZjkxGOe9pFqEkffrtMH-_4a
结构体是多个不同类型变量的组合,其占用的内存大小是所有变量大小的总和
联合体是多个不同类型变量的抽取,其占用内存的大小是联合体中最大的那个变量的大小
2. 解释
结构体中的多个变量同时存在,你可以给其中的每个变量分别赋值。任何一个变量被赋值不影响其他变量。你在需要使用时每个变量都可以同时被取出使用。
联合体中的多个变量同时只有一个存在。你只能给其中的一个变量赋值。你在给联合体的任何一个变量赋值的时候就覆盖了其他的变量,也就是说只有你刚赋值的这个变量存在,其他都被覆盖掉了
3. 用途
结构体和联合体都用于需要把一组变量联合考虑的场合。结构体变量清晰,便于使用,尤其是要表述一个对象的多个属性时方便有效。但是要占用比较大的内存
联合体同时只有一个变量存在,占用资源少,有助于提高编程效率,但是使用不如结构体这么方便和清晰。
请参考 http://zhidao.baidu.com/link?url=ypbVYByx_M2PNWkCi0zer2GMT3Jc7xP5KXz2U1dUwsGIJTSpxwIJsgdOcJtZ-QyZjkxGOe9pFqEkffrtMH-_4a
2007-12-18 · 知道合伙人数码行家
关注
展开全部
结构体是多个数据的集合,可以保存多个数据
而联合union只保存一个数据,但是可以按照不同类型来读取。
比如你的联合里面有一个int和一个float,你第一次写进int,然后第二次写进float,那么int就不可用了(或者说读出来已经不是你存的int值了),因为这个union所在的内存区域值已经是第二次写进的float了。
而联合union只保存一个数据,但是可以按照不同类型来读取。
比如你的联合里面有一个int和一个float,你第一次写进int,然后第二次写进float,那么int就不可用了(或者说读出来已经不是你存的int值了),因为这个union所在的内存区域值已经是第二次写进的float了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct 占的字节数是每个变量占字节数的和,而union 占内部变量中最大的字节数,也就是所有成员共用同一内存地址.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
联合有float,int ,char等,因float内存大,故为float型的内存大小
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询