#include <iostream>

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


//结构体定义和使用
//struct  结构体名  { 结构体成员列表 };
//通过结构体创建变量的方式有三种:
//⚪struct 结构体名 变量名
//⚪struct 结构体名 变量名 = { 成员1值 , 成员2值 }
//⚪定义结构体时顺便创建变量

//1、创建学生数据类型 学生包括的属性:( 姓名、年龄、分数  )
//一些类型的集合组成的自定义的数据类型

#if(0)

struct Student
{
	//成员列表

	//姓名
	std::string name;
	
	//年龄
	int age;
	
	//分数
	int score;



}s3;  //创建一个结构体变量



int main()
{
	
	
	//2、通过学生类型创建具体的学生

	//① struct Student s1
	//创建变量 struct 关键字可以省略  定义不可以省略
	Student s1;
	//给s1属性赋值,通过.访问结构体变量中的属性
	s1.name = "张三";
	s1.age = 18;
	s1.score = 100;

	std::cout << "姓名:" << s1.name << "年龄:" << s1.age << "分数:" << s1.score << std::endl;

	//② struct Student s2 = { ... }
	struct Student s2 = { "李四" , 19 , 80 };
	std::cout << "姓名:" << s2.name << "年龄:" << s2.age << "分数:" << s2.score << std::endl;

	//③ 在定义结构体时  顺便创建结构体变量(不建议用)
	s3.name = "王五";
	s3.age = 20;
	s3.score = 60;
	std::cout << "姓名:" << s3.name << "年龄:" << s3.age << "分数:" << s3.score << std::endl;


	system("pause");

	return 0;

}

#endif

//总结1:定义结构体时关键字是struct ,  不可省略

//总结2:创建结构体变量时,关键字struct可以省略

//总结3:结构体变量利用操作符"." 访问成员