带你初始结构体~

引入

概念:在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
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值