title: Cplusplus-struct
date: 2016-05-07 15:00:44
tags: C++
C++结构体与共用体的使用
 
比如我们需要一个数据类型用于储存某个人的年龄、性别、地址,这个时候需要用到结构体
- 声明结构体: - 1 
 2
 3
 4
 5
 6- struct mystruct 
 {
 int age;
 string sex;
 string address;
 };
- 结构体的使用: - 1 
 2
 3
 4
 5
 6- mystruct Jack= 
 {
 30,
 "男",
 "shanghai"
 };
- C++11可以省略等号来初始化结构 - 1 
 2
 3
 4
 5
 6- mystruct Xier 
 {
 20,
 "女",
 "Beijing"
 };
- 我们可以这样来声明并创建结构体对象 - 1 
 2
 3
 4
 5
 6- struct inflatable 
 {
 char[20] name;
 float vulum;
 double price;
 }pal,jone;
声明并创建了pal和jone
- 甚至可以这样做 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11- struct inflatable 
 {
 char[20] name;
 float volum;
 double price;
 } mr_glitze =
 {
 "Jack",
 0.20,
 20.30
 };
- 访问结构体元素 
 访问结构体元素和用类对象访问函数和变量是一样的,使用: 对象名.变量名- 1 
 2- mr_glitze.name;//访问到了Jack 
 mr_glitze.price;//访问到了20.30
- 结构数组 
 我们可以像使用常规数组一样来使用结构数组,原理都是一样的- 根据上面的例子,我创建了inflatable这个结构,就可以创建它的数组了 - 1 - inflatable gifts[100]; 
记住gifts是一个数组而不是结构,像gifts.price这样使用是无效的,gitfs包含每个元素(gifts[0]~gifts[99])都是inflatable的对象,我们可以这样来访问元素:
| 1 | gifts[2].name; | 
初始化结构数组
| 1 | inflatable guest[2]= | 
- 共用体在日常生活工作中,我们会遇到要储存一个不同类型的值,有时候它是整型、有时候是字符串类型,比如小李的公司每个部门给员工编号,每个部门的编号都不同,有的部门用整型数据给员工编号,而有的部门给员工起个绰号(字符串),这样当我们要把员工数据录入的时候就有麻烦了,所以这时候就要用共用体。共用体的声明和结构体一样 1 
 2
 3
 4
 5union myUnion 
 {
 int ID_int;
 string ID_str;
 };
现在就可以使用myUnion来储存int
变量和string变量了1
2
3myUnion mu;
mu.ID_int=045311;
mu.ID_str="令狐冲";
需要注意的是,共用体每次只能储存一个变量,第一次把ID_int初始化为045311,当我再次初始化ID_str的值时,原来的ID_int的内存将被清空,用来储存ID_str的值
 
     
	 
	 
	 
	 
	