C++之struct结构体使用详解
2017-02-13 13:14
218 查看
C/C++有char、int、float、double等基本数据类型,但是假如我们要存储一个人的信息,包含姓名、身高、体重等信息,仅使用一种基本数据类型是无法实现的,因此我们希望有一种数据格式能够将所有这些信息存储在一个单元中,这就需要使用struct结构体完成。
(1)按照前面简介中的要求我们可以定义如下的结构体完成对一个人各种信息的描述:
struct people
{
char Name[20];
unsigned int Height;
float Weight;
};
关键字struct表明这是在定义一个结构体,people是这种数据格式的名称,因此我们可以像使用char、int等创建变量一样使用people创建people类型的变量了。
(2)定义结构后,就可以创建这种类型的变量了:people
person1;people person2;等。注意:如果是C语言编程应该这样定义struct people person3;C++允许在声明结构体时省略关键字struct,而C不可以。
(3)定义的struct结构体变量可以通过成员运算符(.)来访问各个成员,如有定义:
people person1=
{
"XiaoMing",
180,
62.5
};
则person1.Name就是结构的Name[20]成员,使用cout << person1.Name << endl;就可以输出显示XiaoMing
(4)结构声明的位置很重要,这涉及到变量作用域,可以将声明放在函数中,也可以放到main()的前面,区别在于前者属于内部声明只能被该函数使用,后者外部声明可以被其后面的任何函数使用。
(1)结构体的初始化可以像上面使用的方式:
people person1=
{
"XiaoMing",
180,
62.5
};
(2)和数组一样,使用逗号将各成员值分开,并将所有成员用大括号括起来。也可以将各成员初始化放在同一行:
people person2 = { "XiaoMing", 180, 62.5 };同样应该用逗号将各成员分开。
(3)C++11允许如下初始化方式:people person3 { "XiaoMing", 180, 62.5 };即省略等号(=)。
(4)如果大括号内未包含任何内容,如:people person4 {};则各个成员将被初始化为0,且person4.Name每个字节被初始化为0。
(1)可以创建元素为结构的数组,如:people person[10];这样person就是一个people数组,其每一个元素(person[0],person
[1]等)都是people对象
(2)结构数组的初始化:
people person[0]=
{
"XiaoMing",
180,
62.5
};
一、结构体声明和使用
(1)按照前面简介中的要求我们可以定义如下的结构体完成对一个人各种信息的描述:struct people
{
char Name[20];
unsigned int Height;
float Weight;
};
关键字struct表明这是在定义一个结构体,people是这种数据格式的名称,因此我们可以像使用char、int等创建变量一样使用people创建people类型的变量了。
(2)定义结构后,就可以创建这种类型的变量了:people
person1;people person2;等。注意:如果是C语言编程应该这样定义struct people person3;C++允许在声明结构体时省略关键字struct,而C不可以。
(3)定义的struct结构体变量可以通过成员运算符(.)来访问各个成员,如有定义:
people person1=
{
"XiaoMing",
180,
62.5
};
则person1.Name就是结构的Name[20]成员,使用cout << person1.Name << endl;就可以输出显示XiaoMing
(4)结构声明的位置很重要,这涉及到变量作用域,可以将声明放在函数中,也可以放到main()的前面,区别在于前者属于内部声明只能被该函数使用,后者外部声明可以被其后面的任何函数使用。
二、结构体的初始化
(1)结构体的初始化可以像上面使用的方式:people person1=
{
"XiaoMing",
180,
62.5
};
(2)和数组一样,使用逗号将各成员值分开,并将所有成员用大括号括起来。也可以将各成员初始化放在同一行:
people person2 = { "XiaoMing", 180, 62.5 };同样应该用逗号将各成员分开。
(3)C++11允许如下初始化方式:people person3 { "XiaoMing", 180, 62.5 };即省略等号(=)。
(4)如果大括号内未包含任何内容,如:people person4 {};则各个成员将被初始化为0,且person4.Name每个字节被初始化为0。
三、结构数组
(1)可以创建元素为结构的数组,如:people person[10];这样person就是一个people数组,其每一个元素(person[0],person[1]等)都是people对象
(2)结构数组的初始化:
people person[0]=
{
"XiaoMing",
180,
62.5
};
相关文章推荐
- C++中声明类的class与声明结构体的struct关键字详解
- c/c++中使用sizeof计算结构体struct和类class的长度(字节)
- C++中在容器Vector中使用结构体Struct
- C/C++ struct 结构体定义 用法详解
- C/C++中结构体struct 的使用
- 《算法笔记》2.8小节——C/C++快速入门->结构体(struct)的使用
- 《算法笔记》2.8小节——C/C++快速入门->结构体(struct)的使用
- 《算法笔记》2.8小节——C/C++快速入门->结构体(struct)的使用
- C++ 结构体struct的使用
- C/C++中结构体struct 的使用
- 《算法笔记》2.8小节——C/C++快速入门->结构体(struct)的使用
- c++ 中 extern 对struct 结构体的使用
- C/C++语法知识:typedef struct 用法详解
- C/C++中的结构体(struct)
- C/C++语法知识:typedef struct用法详解
- C/C++中结构体(struct)知识点强化(四)
- C/C++语法知识:typedef struct 用法详解
- C/C++结构体和结构体指针使用之我见
- C++中使用指针详解
- C/C++语法知识:typedef struct 用法详解