C++结构体
·
结构体基本概念
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
结构体定义和使用
语法:struct 结构体名 { 结构体成员列表 };
通过结构体创建变量三种方式
1、struct 结构体名 变量名(struct可省略)
2、struct 结构体名 变量名 = { 成员1值,成员2值... }(struct可省略)
3、定义结构体时顺便创建变量
struct Student{
string name;
int age;
int score;
}s3; //3、定义结构体时顺便创建变量
int main(){
//1、struct 结构体名 变量名(struct可省略)
struct Student s1;
s1.name=" "
s1.age = 18;
s1.score = 100;
//2、struct 结构体名 变量名 = { 成员1值,成员2值... }(struct可省略)
struct Student s2={ "李四",19,80 };
}
结构体数组
将自定义的结构体放入数组中方便维护
语法:struct 结构体 数组名{元素个数} = { {},{},...{} }
struct Student{
string name;
int age;
int score;
}
int main(){
//创建结构体数组
struct Student stu[3]={
{"张三",18,100},
{"李四",28,99},
{"王五",38,66}
}
//给结构体数组中的元素赋值
stu[2].name="李华";
//遍历结构体数组
for(int = 0;i<3;i++){
cout<<"姓名:"<<stu[i].name<<endl;
}
}
结构体指针
通过指针访问结构体中的成员
利用操作符->可以通过结构体指针访问结构体属性
struct Student{
string name;
int age;
int score;
}
int main(){
//创建结构体变量
struct Student s={"张三",18,100};
//通过指针指向结构体变量
Student *p = &s;
//通过指针访问结构体变量中的数据
cout<<"姓名:"<<p->name<<end1;
}
结构体嵌套结构体
结构体中的成员可以是另一个结构体
struct student{
string name;
int age;
int score;
}
struct teacher{
int id;
string name;
int age;
struct student stu;
}
int main(){
teacher t;
t.id = 10000;
t.name = "老王";
t.age = 20;
t.stu.age=20;
t.stu.score=60;
}
结构体做函数参数
将结构体作为参数向函数中传递
两种传递方式
1、值传递
2、地址传递
如果不想修改主函数中的数据,用值传递,反之用地址传递
struct student{
string name;
int age;
int score;
}
//值传递
void printStudent1(struct student s){
cout<<"姓名:"<<s.name<<endl;
}
//地址传递
void printStudent2(struct student *s){
cout<<"姓名:"<<s->name<<endl;
}
int main(){
struct student s;
s.name = "张三"
s.age = 20;
s.score = 85;
printStudent1(s);
printStudent2(&s);
}
结构体中const使用场景
用const来防止误操作
struct student{
string name;
int age;
int score;
}
void printStudent(const student *s){
s->age = 150;//加入const之后,一旦有修改操作就会报错,可以防止误操作
cout<<"年龄:"<<s->age<<endl;
}
int mian(){
struct student s = {"张三",15,70}
printStudent(&stu)
}
更多推荐


所有评论(0)