1. 概念
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
}s3;
int main()
{
student s1;
s1.name = "张三";
s1.age = 18;
s1.score = 80;
cout <<"姓名:"<<s1.name<<endl;
cout <<"年龄:"<<s1.age<<endl;
cout <<"分数:"<<s1.score<<endl;
student s2={"李四",20,78};
cout <<"姓名:"<< s2.name<<endl;
cout <<"年龄:"<<s2.age<<endl;
cout <<"分数:"<<s2.score<<endl;
system("pause");
return 0;
}
2. 嵌套结构体
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
};
struct teacher
{
int id;
string name;
int age;
student stu;
};
int main()
{
teacher t;
t.id = 1000;
t.name="gg";
t.age = 42;
t.stu.name ="小明";
t.stu.age = 23;
t.stu.score = 80;
cout <<t.id<<endl;
cout <<t.name<<endl;
cout <<t.age<<endl;
cout <<t.stu.name<<endl;
cout <<t.stu.age<<endl;
cout <<t.stu.score<<endl;
system("pause");
return 0;
}
3. 结构体数组
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
};
int main()
{
struct student arr[3]=
{
{"张三",18,60},
{"李四",20,89},
{"王文",19,80}
};
for(int i=0;i<3;i++)
{
cout <<"姓名:"<<arr[i].name<<" ";
cout <<"年龄:"<<arr[i].age<<" ";
cout <<"分数:"<<arr[i].score<<endl;
}
system("pause");
return 0;
}
4. 结构体做函数参数
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
};
void printstu1(student s)
{
s.age=100;
cout << "在printstu1中:" <<endl;
cout << s.name <<endl;
cout << s.age <<endl;
cout << s.score <<endl;
}
void printstu2(student * s)
{
s->age=100;
cout << "在printstu2中:" <<endl;
cout << s->name <<endl;
cout << s->age <<endl;
cout << s->score <<endl;
}
int main()
{
student s;
s.name= "张三";
s.age=18;
s.score=84;
printstu1(s);
cout << "主函数中:"<<endl;
cout << s.name <<endl;
cout << s.age <<endl;
cout << s.score <<endl;
printstu2(&s);
cout << "主函数中:"<<endl;
cout << s.name <<endl;
cout << s.age <<endl;
cout << s.score <<endl;
system("pause");
return 0;
}
5. 结构体指针
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
};
int main()
{
student s = { "张三", 18, 20 };
student * p = &s;
cout << "姓名:" << p->name << endl;
cout << "年龄:" << p->age << endl;
cout << "分数:" << p->score << endl;
system("pause");
return 0;
}
6. const使用场景
#include<iostream>
using namespace std;
#include<string>
struct student
{
string name;
int age;
int score;
};
void printstu(const student * s){
cout << "姓名:" << s->name << endl;
cout << "年龄:" << s->age << endl;
cout << "分数:" << s->score << endl;
}
int main()
{
student s = { "张三", 18, 20 };
printstu(&s);
system("pause");
return 0;
}