c语言共用体定义结构体,结构体、共用体跟用户定义类型(1)

结构体、共用体和用户定义类型(1)

C语言的基本类型有:整型(int)、字符型(char)、浮点型(float)、双精度型(double)、空值型(void)以及派生类型 (指针和数组)。本章介绍C语言中可由用户构造的三种数据类型:

(1)用户定义类型(typedef);(2)结构体(struct);(3)共用体(union);

1 用typedef说明新类型名

C语言允许用 typedef 说明一种新类型名,一般形式为:

typedef  类型名  标识符;

“类型名”必须是在此语句前已有定义的类型标识符。“标识符”是一个用户定义标识符。typedef 语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并不产生新的数据类型,原有类型名依然有效。例如:

typedef  int  INTEGER;

该语句把一个用户命名的标识符 INTEGER 说明称一个 int 类型的类型名。在此说明之后,可以用标识符 INTEGER 来定义整型变量。例如:

INTEGER m, n;  等价于  int m, n;

INTEGER 是 int 的一个别名。为便于识别,一般习惯将新的类型名用大写字母表示。如:

typedef char* CHARP;

CHARP p;

等价于:char* p;

2 结构体类型

2.1结构体类型的说明

结构体类型说明的一般形式为:

struct 结构体标识名

{

类型名1  结构成员名表1

类型名2  结构成员名表2

...

类型名n  结构成员名表n

};

其中 struct 是关键字。“结构体标识名”和“结构成员名”是用户定义的标识符,其中“结构体标识名”是可选项,在说明中可以不出现。每个“结构成员名表”中都可以含有多个同类型的成员名,它们之间用逗号隔开。结构体中的成员名可以和程序中的其他变量同名;不同结构体中的成员也可以同名。注意:结构体说明同样要以分号(;)结尾。

struct date

{int year, month, day;};

结构体类型说明中的“类型名”,不仅可以是简单数据类型,也可以是结构体类型。当结构体说明中又包含结构体时,成为结构体的嵌套。如下:

struct student

{

char name[12];

char sex;

struct date birthday;

float sc[4];

};

ANSI C 标准规定结构体至少允许嵌套15层,允许内嵌结构体成员的名字与外层成员的名字相同。

结构体类型的说明只是列出了该结构的组成情况,标志着这种类型的结构“模式”已经存在,编译程序并没有因此而分配任何存储空间。真正占有存储空间的仍是具有相应结构体类型的变量、数组以及动态开辟的存储单元。因此,在使用结构体变量、数组或指针变量前,必须先对这些变量、数组或指针变量进行定义。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值