C++基础总结(3)--复杂数据类型
2016-03-02 10:39
671 查看
C++的三种复杂数据类型为:结构体,联合体, 以及枚举。
结构是由用户定义的类型,而结构类型定义了这种数据类型的属性。定义了类型之后便可以创建这种类型的数据变量。
创建数据类型分为两步:
首先,定义结构描述----------它描述并且标记了能够存储在结构中的各种数据类型。
然后然后按照描述创建结构变量(结构数据对象)。
例如:
此新类的名称叫做inflatable,这样·就可以像int,char和double那样创建数据变量。其作用域和其他简单的数据类型是一样的。
初始化方法:
infatable hats={"Jack",1.123,12.33};(C++11支持将列表初始化用于结构)。且等号是可选的。如果大括弧内没有任何东西,各个成员都将被初始化为零。
结构可以作为函数参数,也可以用等号进行直接赋值,将一个结构变量赋值给另一个结构变量。
可以同时完成结构的定义以及结构变量的创建工作。只需将变量名放在结束括号的后面即可。
其中ms_smith和ms_jone便是结构变量,相当于hats,perks是结构的名称。
还可以声明没有名称的结构类型。方法是省略名称。
strcut
{
int x;
int y;
}position;
这样将创建一个position的结构变量。可以运用成员运算符访问它的成员,但这种类型没有名称,因此以后无法创建这种类型的变量。
联合体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储一种数据类型。结构体可以同时存世int,long和double而联合体只能存储int或long或double
创建和声明和结构体类似,但是不同之处在于联合体每次智能存储一个值。因此他必须有足够大的控件来存储最大的成员,所以联合体的长度是其最大成员的长度。
匿名联合体没有名称,其成员将成为位于相同地址处的变量,显然每次只有一个是当前成员。
枚举
C++的enum工具提供了一种创建符号常量的方式。
例如enum specttum{red,orange,yellow, green,blue,violert,indigo,ultraiolet};//分别赋值为0-7,后面总比前面大一
结构是由用户定义的类型,而结构类型定义了这种数据类型的属性。定义了类型之后便可以创建这种类型的数据变量。
创建数据类型分为两步:
首先,定义结构描述----------它描述并且标记了能够存储在结构中的各种数据类型。
然后然后按照描述创建结构变量(结构数据对象)。
例如:
struct inflatable { char name[20]; float volume; double price; };
此新类的名称叫做inflatable,这样·就可以像int,char和double那样创建数据变量。其作用域和其他简单的数据类型是一样的。
初始化方法:
infatable hats={"Jack",1.123,12.33};(C++11支持将列表初始化用于结构)。且等号是可选的。如果大括弧内没有任何东西,各个成员都将被初始化为零。
结构可以作为函数参数,也可以用等号进行直接赋值,将一个结构变量赋值给另一个结构变量。
可以同时完成结构的定义以及结构变量的创建工作。只需将变量名放在结束括号的后面即可。
struct perks { int key_num; char name[20]; }ms_smith,ms_jone;
其中ms_smith和ms_jone便是结构变量,相当于hats,perks是结构的名称。
还可以声明没有名称的结构类型。方法是省略名称。
strcut
{
int x;
int y;
}position;
这样将创建一个position的结构变量。可以运用成员运算符访问它的成员,但这种类型没有名称,因此以后无法创建这种类型的变量。
联合体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储一种数据类型。结构体可以同时存世int,long和double而联合体只能存储int或long或double
union one4all { int int_val; long long_val; double double_val };
创建和声明和结构体类似,但是不同之处在于联合体每次智能存储一个值。因此他必须有足够大的控件来存储最大的成员,所以联合体的长度是其最大成员的长度。
匿名联合体没有名称,其成员将成为位于相同地址处的变量,显然每次只有一个是当前成员。
union { long id_num; char id_char; };由于联合体是匿名的,因此 id_num和id_char被视为price的两个成员,它们的地址相同。
枚举
C++的enum工具提供了一种创建符号常量的方式。
例如enum specttum{red,orange,yellow, green,blue,violert,indigo,ultraiolet};//分别赋值为0-7,后面总比前面大一
相关文章推荐
- C++基础总结(3)--复杂数据类型
- C++ const wchar_t*转string
- c++ (P49—P68)
- C/C++从文件开头按行读取内容==并无需新建文件,获取前部分内容
- 自主输入数值求和及平均值(数组的应用)
- [C/C++基础]读写文件
- Cpp--关于windows.h头文件
- 深入理解C++中public、protected及private用法
- C++语言-07-异常处理和信号处理
- c++命名空间
- c/c++将整数转换为字符串
- C语言——数组、函数、指针
- 关于C++中函数指针的使用
- c++时间函数
- C++中的explicit关键字
- C++中执行windows指令
- 编程语言之C++的学习
- C语言设置文本颜色和移动光标
- c语言数据类型 之 内存对齐与位段
- 2015年蓝桥杯省赛B组C/C++(试题+答案)前几题