您的位置:首页 > 编程语言 > C语言/C++

联合、枚举和类型别名 - C++快速入门13

2011-12-19 02:36 591 查看

联合、枚举和类型别名

让编程改变世界

Change the world by program

联合、枚举和类型别名

在 C++ 里还有许多其他类型使我们暂时还没有提到的。除了对象外,C++ 中最重要的数据类型小甲鱼已经一一带来和大家见过面了。(对象将在下一节开始讲解)

到目前为止,我们已经见过了整数、实数、字符、字符串、数组、指针和结构。今后我们还会讨论一种优于数组的向量(vector)类型。

这一节课,我们介绍几个非主流的类型,第一个是:联合(union)。

联合

联合与结构有很多相似之处,联合也可以容纳多种不同类型的值,但是它每次只能存储这些值中的某一个。

例如:我们要定义一个变量来存放某种密码,我们可以选择是你女朋友的生日、身份证最后4位数字或者你养的宠物的名字等等。

联合类型将是一个不错的选择 >>

union mima

{
unsigned long birthday;

unsigned short ssn;

char* pet;

};

定义了这个联合类型之后,就可以像下面这样创建一个该类型的变量了:
mima mima_1;

再接下来,我们可以像对结构成员进行赋值那样对联合里的成员进行赋值,使用同样的语法:
mima_1.birthday = 19881301;

上边这条语句是将值 19881301 存入 mima_1 联合的 birthday 里边。如果我们再执行下边语句:
mima_1.pet = “Chaozai”;

这个联合将把 “Chaozai” 存入 mima_1 联合的 pet 成员,并丢弃 birthday 成员里的值。

枚举

枚举(enum)类型用来创建一个可取值列表:

enum weekdays { Monday, Tuesday, Wednesday, Thursday, Friday };

定义一个枚举类型之后,我们就可以像下面这样创建该类型的变量:

weekdays today;

然后我们像下边的方式对他进行赋值:

today Thursday;

注意,我们这里不需要使用引号,因为枚举值不是字符串。。。

编译器会按照各个枚举值在定义时出现的先后顺序把它们与 0 ~ n-1 的整数(n 是枚举值的总个数)分别关联起来。

使用枚举类型好处有两个:

它们对变量的可取值加以限制;

它们可以用做 switch 条件语句的 case 标号。(因为字符串是不能作为标号用的!小技巧哦~)

类型别名

最后我们来介绍 Typedef 保留字,使用它可以为一个类型定义创建一个别名。

例如,我们不喜欢使用 int* 来创建指针,可以像下边这样定义一个类型别名:typedef  int*  intPointer;

在此之后,我们就可以像下面这样来定义整型指针了: intPointer  myPointer;

[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy]
[Downlink href='http://urlxf.qq.com/?7vm22az']视频下载[/Downlink]
[Downlink href='http://kuai.xunlei.com/d/LSWMXNTBYFTT']备胎下载[/Downlink]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: