带你初始结构体~

引入

概念:在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量指针数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。—百度百科

其实说人话就是:
结构体是C语言中用来描述“复杂对象”的
比如描述学生:名字+学号+年龄
结构体可以让c语言创建新的类型出来
结构体类型相当于图纸(先创建出来备用),结构体变量相当于实际造的房子.
别着急,看几段代码你就懂了

案例一:创建并直接打印一个结构体变量

struct Stu // 创造一个学生的类型-结构体类型
{
	char name[20];//名字-字符串,字符串本身就是地址,以后用的时候不用取地址哈!
	int age;//年龄-整数,记得到时候用scanf的时候取地址
	char sex[5];
	char id[20];
};   //这里有个分号!
int main(void)
{
//结构体变量:s1,s2就叫所谓的结构体变量,是我们自己创建出来的
	struct Stu s1 = {"张三",18,"男","2021060701"};
	struct Stu s1 = {"如花",45,"女","2021060702"};
	printf("%s %d %s %s",s1.name,s1.age,s1.sex,s1.id;
	//点操作符使用规范:结构体变量.结构体成员,参照上方.
	return 0;
}

案例二:创建并用函数打印一个结构体变量

void print(struct Stu* ps)//此时函数得到的是s2的地址,这也就是指针的重要性,当我们不知道对象具体是什么而知道对象的地址的时候可以利用好指针
{
printf("%s %d %s %s",(*ps).name,(*ps).age,(*ps).sex,(*ps).id);
//此时需要解引用!,即使用"*"
//或者:
//printf("%s %d %s %s",ps->name,ps->age,ps->sex,ps->id);
//第二种写法更简单一点
}
struct Stu // 创造一个学生的类型-结构体类型
{
	char name[20];//名字-字符串
	int age;//年龄-整数
	char sex[5];
	char id[20];
};
int main(void)
{
//结构体变量
	struct Stu s1 = {"张三",18,"男","2021060701"};
	struct Stu s1 = {"如花",45,"女","2021060702"};
	print(&s2);//注意,这里只是取了s2的地址!
    return 0;
}

输入结构体s:

scanf("%s %d %s %s",s1.name,&(s1.age),s1.sex,s1.id);
//数组不取地址

小技巧:

typedef struct Stu
//使用关键字typedef,以后就可以直接写Stu,而不是struct Stu

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>