c语言基础之结构体

#include 


/**
	什么是结构体?
		结构体就是由基本数据类型构成的一个复杂的数据类型。

	如何定义一个结构体?定义一个结构体有3种方式
		1.第一种方式最常用
*/
struct Student{
int age;
char sex;
float score;
};

//2. 结构体后直接跟上变量的名称
struct Teacher{
int age;
char sex;
} teacher1;

//3. 不用表明结构体的名称
struct{
int age;
} student3;

int  main(void)
{  
	/**
		为什么出现了结构体?
	*/
	//表示 一个学生的基本信息
	int age=10;
	char sex='F';
	char name[100]="jingtao";

	//表示 另一个学生的基本信息
	int age2=15;
	char sex2='T';
	char name2[100]="jingwangfei";  

	/**
		将会有很多的学生 那么重复的代码就会出现,并且会很容易导致混淆 。
		那么如何解决这个问题呢?
		因此需要一种新数据类型,把所有的信息封装起来,这时就出现了结构体
	*/

	/**
		结构体的使用:
			声明:结构体的声明 与 基本类型变量的声明 相同

			初始化: 1.再声明的时候进行初始化。
					2.单独初始化,如果声明与初始化分开,则必须通过单独赋值进行初始化

	*/
	struct Student student1={10,'r',65.4f};

	struct Student student2;
	student2.age=12;
	student2.sex='F';
	student2.score=43.3f;
	/**
		如何访问结构体中的每一个变量成员呢?有2种方式
			1:通过 结构体变量.成员变量 访问
			2:通过 结构指针变量 -> 成员变量 访问
				其实 他的本质 通第一个相同
	*/
	printf("%d %c %f\n",student2.age,student2.sex,student2.score);//第一种方式: 结构体变量.成员变量

	struct Student * stdPoint = &student1;

	printf("%d %c %f\n",stdPoint->age,stdPoint->sex,stdPoint->score);//第二种方式:1.结构指针变量 -> 成员变量
																	//             2.stdPoint -> age =(*stdPoint).age
	return 0;
}


你可能感兴趣的:(c语言)