C语言数据类型(结构体,共用体,枚举,typedef)

一  结构体:结构体是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。

1.结构体类型的声明及结构体类型变量的定义:

2.结构体变量的引用方式:

(1)结构体变量名.成员名:stu.name

(2)结构体指针变量->成员名:ps -> name

(3)(*结构体指针变量).成员名:(*ps).name(因为优先级的问题,所以要加括号)

(4)结构体变量数组名.成员名:stu[0].name

3.结构体数组:

4.结构体关于函数传参:

5.结构体指针:指向结构体变量的指针,和其他类型的指针都是一样的理解,所占空间在32位平台占4字节,在64位占8字节。如果一个指针变量中保存了结构体变量的首地址,那么这个指针变量就指向该结构体变量,通过结构体指针即可访问该结构体变量。结构指针变量的一般形式为:struct 结构体名 *结构体指针变量名;struct stu *p = &a;

将结构体变量传递给函数,可有三种方法:

(1)形参是结构体成员,实参是对应结构体成员的值,参数传递是将结构体成员的值传递给形参。

(2)形参是结构体变量,实参是结构体变量的值,参数传递是将结构体变量的值传递给形参。

(3)形参是指向结构体类型的指针,实参是结构体变量的地址或指向结构体变量的指针,参数传递是将结构体变量的首地址传递给形参。

前两种方法属于值传递方式(副本机制),结构体规模较大时,空间和时间的浪费较大,一般使用地址传递的方式。

二 共用体:共用体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型,所有成员是共享一段内存,即所有成员的首地址都是一样的。因此,我们在任意时刻只可以按照一个数据类型对共用体进行赋值,共用体中这些成员的关系是“或”,即“不是你死就是我活”。

共用体的声明及赋值(共用体变量不能在定义的同时初始化):

三 枚举:枚举也是一种数据类型,枚举的成员可以理解为int类型,如果没有指定,第一个成员默认为0,后面的成员依次加一,如果指定了成员 = N,后面的成员依次加一。

枚举的声明和初始化:

四 typedef:定义一种类型的别名,而不只是简单的宏替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值