概念
用户自定义的数据类型,允许用户存储不同的数据类型。
结构体定义
#include <iostream>
#include <string.h>
struct student
{
string namme;
int age;
int score;
}
int main(void)
{
struct student stu1;
stu1.name="老王";
stu1.age=20;
stu1.score=59;
cout<<"name:"<<stu1.name<<"age:"<<stu1.age<<"score:"<<stu1.score<<endl;
}
结构体数组
#include <iostream>
#include <string>
struct student
{
string namme;
int age;
int score;
}
int main(void)
{
struct student stu[3];//定义三名学生
stu[3]=
{
{"老王",20,59},
{"小刚",20,59},
{"老朱",20,100}
};
}
结构指针
通过指针访问成员变量,使用箭头访问
#include <iostream>
#include <string>
struct student
{
string namme;
int age;
int score;
}
int main(void)
{
struct student stu={"老王",20,59};//定义学生
student * p =&stu;
cout<<"name:"<<p->name<<"age:"<<p->age<<"score:"<<p->score<<endl;
}
结构体作函数参数
值传递
#include <iostream>
#include <string>
struct student
{
string namme;
int age;
int score;
}
void print_information(struct student stu)
{
cout<<"name:"<<stu.name<<"age:"<<stu.age<<"score:"<<stu.score<<endl;
}
int main(void)
{
struct student stu1={"老王",20,59};//定义学生
print_information(stu1);//值传递
}
地址传递
#include <iostream>
#include <string>
struct student
{
string namme;
int age;
int score;
}
void print_information(struct student * stu)
{
cout<<"name:"<<stu->name<<"age:"<<stu->age<<"score:"<<stu->score<<endl;
}
int main(void)
{
struct student stu1={"老王",20,59};//定义学生
print_information(&stu1);//地址传递
}
结构体中 const的使用
作用:防止误操作
#include <iostream>
#include <string>
struct student
{
string namme;
int age;
int score;
}
void print_information(const struct student * stu)//这里使用了const
{
cout<<"name:"<<stu->name<<"age:"<<stu->age<<"score:"<<stu->score<<endl;
}
int main(void)
{
struct student stu1={"老王",20,59};//定义学生
print_information(&stu1);//地址传递
}