为了在一个类型中装多种类型的数据,所以采用结构体(struct)。比如关于学生的描述,就包含他的姓名、学号、姓别、成绩等各种类型的数据。
w1.定义结构体及结构体变量 w结构体变量的定义有两种形式:
先定义结构体再定义结构体变量
struct 结构体类型名{ //其中struct是关键字
成员; //可以有多个成员
成员函数; //可以有多个成员函数,也可以没有
};
结构体名 结构体变量 //同样可以同时定义多个结构体变量
例如:
struct student{ //定义类型名叫student的struct类型
string name;
int chinese,math;
int total;
};
student a[110];
struct 结构体类型名{
成员;
成员函数;
}结构体变量表; //可以同时定义多个结构体变量,用“,”隔开
struct student{
string name;
int chinese,math;
int total;
} a[110]; //同时定义了a数组变量
在定义结构体变量时注意,结构体变量名和结构体名不能相同。在定义结构体时,系统对其不分配实际内存。只有定义结构体变量时,系统才为其分配内存。
创建一个学生的结构体,包括年龄、学号、姓名、成绩、性别。
struct student{
int age;
int gender;
int number;
string name;
int score;
}student1;
成员调用
结构体变量与各个成员之间引用的一般形式为:
结构体变量名.成员名
对于上面定义的结构体变量,我们可以这样操作:
cin>>student1.name; //一般情况下不能写cin>>student;
cout<<student1.age;
student1.number=student1.age+student1.score;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> using namespace std; struct student{ int age; int gender; int number; string name; int score; }; int main(){ student zhanghsan; zhanghsan.age=16; zhanghsan.gender= true; zhanghsan.number=452325; zhanghsan.name="zhangsanfeng"; zhanghsan.score=345; cout<<zhanghsan.score; } |
先定义结构体再定义变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <iostream> using namespace std; struct student{ int age; char gender; int number; string name; int score; }wanger; int main(){ cin>>wanger.age; cin>>wanger.gender; cin>>wanger.number; cin>>wanger.name; cin>>wanger.score; cout<<wanger.name; } |
定义结构体的同时定义变量