王朝百科
分享
 
 
 

union

王朝百科·作者佚名  2009-11-11  
宽屏版  字体: |||超大  

union:C/C++语言关键字。1. 共用体声明和共用体变量定义

共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义

共用体声明和共用体变量定义与结构体十分相似。其形式为:

union 共用体名{

数据类型 成员名;

数据类型 成员名;

...

} 变量名;

共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且只能储存其中一个成员变量的值。

下例表示声明一个共用体foo:

union foo{

int i;

char c;

double k;

};

再用已声明的共用体可定义共用体变量。

例如用上面说明的共用体定义一个名为bar的共用体变量, 可写成:

union foo bar;

在共用体变量bar中, 整型变量i和字符变量c共用同一内存位置。

当一个共用体被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度。以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。

由于union的资料成员共用一个内存空间,所以必须存取正确的成员才能正确的读取变量值,可以使用一个额外的变数或列举型态来记录最后一次使用空间的是哪个成员,例如:

#include <iostream>

using namespace std;

union StateMachine {

public:

char character;

int number;

char *str;

StateMachine(char c) {

character = c;

}

StateMachine(int n) {

number = n;

}

StateMachine(char* s) {

str = s;

}

};

enum State {character, number, str};

int main() {

State state = character;

StateMachine machine('J');

...

if(state == character)

cout << machine.character << endl;

...

return 0;

}

另外要注意的是,union的成员不可以为静态、参考,如果是自订型态的话,该自订型态成员不可以有建构函式、解构函式或是复制指定运算子。

2. 共用体和结构体的区别

共用体和结构体有下列区别:

1. 共用体和结构体都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在。

2. 对于共用体的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构体的不同成员赋值是互不影响的。

UNION:SQL运算符数据库 Transact-SQL 中 的运算符,将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。使用 UNION 组合两个查询的结果集的两个基本规则是:

1 、 所有查询中的列数和列的顺序必须相同。

2 、 数据类型必须兼容。

例句:

select top 100 aa.keyno,aa.commtype from comminfo aa

union all

select bb.userno,bb.corpname from userinfo bb

将comminfo表和userinfo表中的字段合成一个结果集

UNION:autocad命令功能:组合面域或实体。 组合面域是两个或多个现有面域的全部区域合并起来形成的。组合实体是两个或多个现有实体的全部体积合并起来形成的。可合并无共同面积或体积的面域或实体。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有