必备Linux命令和C语言基础(lv1_第八课)

学习目标:

必备Linux命令和C语言基础

学习内容:

1、用户自定义数据类型--结构体 2、用户自定义数据类型--共用体 3、用户自定义数据类型--位域 4、用户自定义数据类型--枚举

学习时间:

1day

学习产出:

二十七、用户自定义数据类型--结构体
	1、结构体
		*结构体的定义
			struct 结构体名{
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			};
		*结构体的成员含结构体类型
		*结构体的成员含结构体类型和联合体类型;
		*结构体类型是用户自定义类型;
		*它由若干不同的基本的数据类型的数据构成;
		*是一种数据类型;
	2、结构体变量的申明、使用和初始化
		*声明:
			*先定义结构体类型,再定义变量名;
			*在定义类型的同时定义变量;
			*直接定义结构体变量
		*使用:
			*不能将一个结构体类型变量作为一个整体加以引用,只能对结构体类型变量中的各个成员分别引用;
			*如果成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级的找到最低的一级成员;只能对最低级的成员进行赋值和存取以及运算;
			*对成员变量可以向普通变量一样进行运算;
			*在数组中,数组不能彼此赋值,而结构体类型变量可以相互赋值;
	3、结构体变量的初始化
		*格式:
			struct 结构体名 变量名={初始化数据表};
	4、结构体数组
		*定义:	
			结构体数组是一个具有相同结构体类型的结构体变量的集合;
		*先定义结构体类型,再定义结构体数组;
		*定义结构体类型的同时,定义结构体数组;
			struct 结构体名{
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			}数组名[数组元素个数];
		*直接定义结构体数组;
			struct {
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			}数组名[数组元素个数];
	5、结构体数组的初始化
		*定义后初始化;
			struct 结构体名{
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			};		
			struct 结构体名 数组名[元素个数	]={初始化列表};
		*定义同时初始化;
			struct 结构体名{
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			}数组名[数组元素个数]={初始数据表};	
		*直接定义并初始化;
			struct {
				数据类型 成员名1;
				数据类型 成员名2;
				...
				数据类型 成员名n;
			}数组名[数组元素个数]={初始数据表};	
	6、结构体数组的使用
		*引用某一元素的成员
		*可以将一个结构体数组元素赋值给另一个同类型的结构体;
		*不能把结构体元素作为一个整体直接进行输入和输出;
	7、结构体指针
		*格式:
			struct 结构体名 *结构体指针名;
		*指向一个结构体的指针指向该指针;
		
二十七、用户自定义数据类型--位域
	1、位域的定义
		*位域又称为位段,是将一个字节的二进制位划分为几个不同的区域,并说明每个区域的位数;
	2、格式:
		struct 位域结构体名
		{
			位域列表;
		};
		位域列表的格式:
			类型说明符 位域名 :位域长度;
	3、注意事项
		*各位域必须存储在同一个字节中,不能跨两个字节。
		*位域的占用位数,不能超过8个二进制位;
		*允许位域无域名;
	4、位域变量的说明:
		*先定义为位域类型,再申明变量;
		*定义位域类型的同时,申明变量;
		*直接定义位域类型的变量
	5、位域的使用
		和结构体成员使用方法相同;
		
二十八、用户自定义数据类型--共用体
	1、格式:
		union 共用体名{
			成员列表;
		};
		*存储时按照成员中数据长度最长的成员占用空间;
	2、一次只能使用其中之一;

二十九、用户自定义数据类型--枚举
	1、格式:
		enum 枚举名{枚举成员列表};
	2、枚举变量的申明
		*先定义,再申明;
		*在定义类型的同时,申明变量;
		*直接定义无名枚举变量;
	3、枚举变量的使用:
		*一旦定义枚举变量,不能再对其变量进行赋值了;
		*使用时,直接将枚举名赋给变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值