C语言 结构体的定义与理解

结构体是一种构造数据类型,可以理解成由不同类型的数据组成的一个自定义数据类型。


结构体定义要在main的上方定义。
结构体定义格式:
struct 结构体名{//<-结构体名可以不写,不写则会成为无名结构体
类型 成员名;
类型 成员名;

}结构体变量1,结构体变量2,结构体变量3,…;
例:

struct nameinfo{
	char name[50];
	char phone[100];
	int num;
};

结构体内部还可以嵌套结构体


定义的结构体不会在内存中创建,只有在main中声明的时候才会创建

在main中声明结构体: struct 结构体 结构体变量;
例:

struct nameinfo a;

可以把 struct nameinfo当作一个类型。


也可以在main的外面声明结构体变量。

struct nameinfo{
	char name[50];
	char phone[100];
	int num;
}a,b,c,d;

给结构体变量的成员赋值:
结构体变量.成员名 = 值;
例:

a.num = 100;.

如果结构体的成员是char 或 char *类型的字符串,要先申请内存,在要使用strcpy或者sprintf来赋值。如果是char []类型则不用申请内存,直接使用strcpy或sprintf赋值。
例:

strcpy(a.name,"xiaoming");

注意:结构体的内部如果嵌套了结构体,但是没有创建子结构体的实例,在定义结构体的内部变量会被当成母结构体的成员变量。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值