目录
1.结构体基本概念
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
}s3;//顺便创建结构体对象
int main()
{
student s1;
s1.name = "xiaoming";
s1.age = 18;
student s2 = {"xiaohong",19,99};
cout << s2.name << ' ' << s2.age << endl;
return 0;
}
2.结构体数组
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
};
int main()
{
student sarray[2] =
{
{"xiaoming",18,99},
{"xiaohong",19,100}
};
cout << sarray[1].name << endl;
sarray[1].name = "xiaogang";
cout << sarray[1].name << endl;
return 0;
}
3.结构体指针
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
};
int main()
{
student sarray[2] =
{
{"xiaoming",18,99},
{"xiaohong",19,100}
};
student *p = sarray;
cout << p -> name << ' ' << p -> age << ' ' << p -> score << endl;
return 0;
}
4.结构体嵌套结构体
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
};
struct teacher{
string name;
int age;
struct student s;
};
int main()
{
teacher t;
t.s.name = "ss";
t.s.age = 19;
cout << t.s.name << ' ' << t.s.age << endl;
return 0;
}
5.结构体做函数参数
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
};
void printstudent(student s)
{
cout << s.name << ' ' << s.age << ' ' << s.score;
}
//地址传递
void printstudent2(student *s)
{
cout << s -> name << ' ' << s -> age << ' ' << s -> score;
}
int main()
{
student s = {"xiaoming",18,89};
printstudent(s);
printstudent2(&s);
return 0;
}
6.结构体中const使用场景
代码示例:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
int age;
int score;
};
void printstudent(student s)
{
cout << s.name << ' ' << s.age << ' ' << s.score;
}
//地址传递
//将函数中的形参改为指针,可以减少内存空间而且不会复制新的副本出来
//使用了const之后,不可修改s的值
void printstudent2(const student *s)
{
cout << s -> name << ' ' << s -> age << ' ' << s -> score;
}
int main()
{
student s = {"xiaoming",18,89};
printstudent(s);
printstudent2(&s);
return 0;
}