码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-22 07:10:23      阅读:446      评论:0      收藏:0      [点我收藏+]

标签:

  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层,允许内嵌结构体成员的名字与外层成员的名字相同。

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

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

标签:

原文地址:http://www.cnblogs.com/web1013/p/5418762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!