结构体和公用体

结构体

除了我们常用的系统数据类型,C语言还允许用户根据需求自定义数据类型

  • 将一组有关系的变量(不同类型,例如一个学生的姓名,学号,成绩等等)联系起来,这样创建一种新的数据类型——结构体类型。

结构体类型的创建方法
关键字 struct

 struct Student
{
   
	int num;
	char name[20];
};

结构体类型的类型名是Student,花括号内是结构体的成员,结构体的成员还可以属于另一个结构体类型

struct Data
{
   
	int year;
	int month;
	int day;
};
struct Student
{
   
	int num;
	char name[20];
	struct Data birthday;//birthday 是一个变量,这个变量的类型是结构体类型Data
	                      //这样这个变量就有了这个类型的结构
	                     //即birthday有了year  month和day
	               
};

以上只是建立了一种类型,只是模型而没有定义变量,没有具体数据,系统不分配空间
定义结构体类型的变量
一定要先声明结构体类型,在定义该类型的变量

struct Student liming;    //定义一个变量叫liming ,类型是学生
struct Student wangliang;
struct Student
{
   
	int num;
	char name[20];
	struct Data birthday;
}student1;//也可以在声明结构体类型的同时定义变量student1;

定义结构体变量时,系统会为其分配内存单元,结构体类型所占内存大小是他所有成员大小之和

;如上述data的大小为4+4+4=12,而Student类型的大小为4+20+12=36; 就像int类型的变量占4
字节大小一样,Student类型的变量如liming 就占36字节

结构体类型的变量具有该结构体类型的结构
  也就是说像上述的liming,他是结构体Student类型的一个变量,那么由于Student类型具有学号,姓名和生日三个成员,Student类型的变量liming则也有同样的三个成员

  • 注意:结构体类型是 类型,他就类似于int,而结构体变量,他是一个特殊类型的变量,只有变量可以进行赋值,存取或运算操作

    结构体变量的成员相当于普通的变量,初始化也是相同的操作,但在结构体变量中可以对某一指定成员进行初始化,其他未被初始化的数值型成员被系统初始化为0,字符型初始化为’\0’,指针型则初始化为NULL

结构体变量是一个变量,结构体的某一个成员也是一个变量,成员的表示方法是结构体变量名 .

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值