初级C语言 结构体

结构体

1.结构体类型的声明
2.结构体初始化
3.结构体成员访问
4.结构体传参

结构体:结构的成员可以是不同类型的变量,用于描述复杂对象。

1.结构体的声明
struct tag
{
	member - list;
}variable-list;

描述一个人
姓名+年龄+性别+电话号

struct People
{
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};
2.结构体的初始化

用结构体类型去创建变量,并赋以初值

#include<stdio.h>
struct People
{
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};
int main()
{
    //创建结构体变量P
	struct People P = { "crush",20,"男","12345665421" };//初始化
	return 0;
}
3.结构体成员访问

两种方式

1.结构体.成员名
2.结构体指针->成员名

1.结构体.成员名

#include<stdio.h>
struct People
{
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};
void Print1(struct People P)
{
	printf("%s\n", P.name);
	printf("%d\n", P.age);
	printf("%s\n", P.sex);
	printf("%s\n", P.tele);
}
int main()
{
	struct People P = { "crush",20,"男","12345665421" };
	Print1(P);
	return 0;
}

在这里插入图片描述
2.结构体指针->成员名

#include<stdio.h>
struct People
{
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};
void Print2(struct People*ps)
{
	printf("%s\n", ps->name);
	printf("%d\n", ps->age);
	printf("%s\n", ps->sex);
	printf("%s\n", ps->tele);
}
int main()
{
	struct People P = { "crush",20,"男","12345665421" };
	Print2(&P);
	return 0;
}

在这里插入图片描述

4.结构体传参
#include<stdio.h>
struct People
{
	char name[20];
	int age;
	char sex[10];
	char tele[12];
};
void Print1(struct People P)
{
	printf("name=%s age=%d sex=%s tele=%s\n",P.name,P.age,P.sex,P.tele);

}
void Print2(struct People*ps)
{
	printf("name=%s age=%d sex=%s tele=%s\n", ps->name,ps->age,ps->sex,ps->tele);
}
int main()
{
	struct People P = { "crush",20,"男","12345665421" };
	Print1(P);
	Print2(&P);
	return 0;
}

在这里插入图片描述

总结:因为函数传参时,参数需要压栈;
如果传递结构体对象时,结构体过大,参数压栈所开辟的空间较大
,会造成空间浪费,性能也会有所下降

结论:结构体传参时,应该传结构体的地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值