1结构体

数组:一些相同元素的集合 结构体:一些值的集合,但是值的类型可以不同

结构体类型

//结构体
struct B
{
	char c;
	short d;
	float e;
};

struct Stu //类型
{
	struct B sb;
	char name[20]; //姓名
	int age; //年龄
	char id[20]; //学号
}s1, s2; //s1和s2也是结构体变量
//区别是s1和s2是全局变量


int main()
{
	struct Stu s = { {'w', 20, 3.14},"Bob", 18, 2003}; //创建对象 -- s是局部变量  //初始化
	struct Stu* ps = &s;
	//结构成员的访问	
	printf("%d\n", s.sb.c);
	printf("%d\n", ps->sb.d);
	printf("%d\n", (*ps).sb.e);
	return 0;
}

注意:在给结构体传参时候,要尽量传结构体的地址,即传址调用,因为不会开辟额外的内存空间。如果是传值,会产生参数压栈,占用过多内存

补充

压栈:给栈中放入数据,自前向后放入,导致先进的后出来,后进的先出来。