C++学习笔记--结构体

结构体的基本概念

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型

结构体的定义和使用

语法: struct 结构体名 {结构体成员列表};

通过结构体创建变量的方式有三种:

        1、struct 结构体名 变量名

        2、struct 结构体名 变量名={成员1值,成员2值};

        3、定义结构体的时候顺便创建变量

结构体数组

作用:将自定义的结构体放入到数组中方便维护

语法: struct 结构体名 数组名[元素个数] ={{},{},.....{}}

结构体指针

作用:通过指针访问结构体中的成员

        利用操作符->可以通过结构体指针访问结构体属性

#include 
using namespace std;

//定义学生的结构体
struct student
{
	string name; //姓名
	int age;	//年龄
	int score;	//分数
};


int main()
{
	//创建学生的结构体变量
	struct student s = {"张三",18,99};
	//通过指针指向结构体变量
	struct student* p = &s;
	//通过指针访问结构体变量中的数据
	cout << "姓名" << p->name << "年龄" << p->age << "分数" << p->score << endl;
	system("pause");

	return 0;
}
结构体嵌套结构体

作用:结构体中的成员可以是另一个结构体

#include 
using namespace std;

//定义学生的结构体
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 = 55;
	t.stu.name = "小张";
	t.stu.age = 22;
	t.stu.score = 85;
	cout << "教师编号" << t.id << " 教师姓名:" << t.name << " 教师年龄" << t.age
		<< " 辅导的学生姓名" << t.stu.name << " 学生年龄" << t.stu.age << " 学生分数" << t.stu.score << endl;

	system("pause");

	return 0;
}
结构体做函数参数

作用:将结构体作为参数向函数中传递

传递方式两种:

        1、值传递

        2、地址传递

本例子是值传递  地址传递可以加上取地址符号

#include 
using namespace std;

//定义学生的结构体
struct student
{
	string name; //姓名
	int age;	//年龄
	int score;	//分数
};
//结构体做函数的参数

void printf_student(student stu)
{
	cout << "子函数中打印 姓名" << stu.name << " 年龄" << stu.age << " 分数" << stu.score << endl;
}

int main()
{
	student s;
	s.name = "张三";
	s.age = 20;
	s.score = 85;

	printf_student(s);
	system("pause");

	return 0;
}
结构体中const使用场景

作用:用const来防止误操作

也就是防止被修改

你可能感兴趣的:(学习,笔记,c++)