您的位置:首页 > 编程语言 > C语言/C++

学ios需要了解的C语言基础知识-8-结构体、枚举、typedef啥的

2014-08-27 22:47 671 查看
结构体、枚举、typedef啥的

1、全局变量:定义在函数外部变量

     1、定义格式:变量类型 变量名称 = 值

     2、声明     变量类型 变量名称

     注意点:

     1、全局变量不可以重复定义,可以重复声明

     作用域:从定义那一行开始直到文件结束,若有声明的话只要是提前声明在整个项目中任意位置都可以使用

     生命周期:从程序启动到程序退出

     存储位置:全局区

  2、结构体:用来存放多个不同数据类型的数据,若相同数据类型可以表示特定含义也可以使用结构体

     特点:先定义结构体类型然后定义结构变量

     如何定义一个结构体类型

     格式: struct 结构体类型名称{

              成员类型 成员名称;

              ....

           };

//   定义类型的时候,一般首字母都要大写

     struct Person{

            int age;

        char* name;

     };

     初始化:

          1、先定义结构体变量然后初始化

             struct Person p;

             1、一个一个的成员进行初始化

             p.age = 10;

             p.name = "hlw";

             2、整体初始化,需要类型强转

             p = (struct Person){10,"hlw"};

           2、定义结构体变量的同时进行初始化

             1、按照结构体定义时成员的顺序进行初始化

            struct Person p = {10,"hlw"};

             2、定义结构体的同时为指定的成员进行初始化

             struct Person p = {.name = "hlw"};

     结构体多种定义方式

     1、先定义结构体类型然后定义结构体变量

     2、定义结构体类型的同时定义结构体变量

        struct Person{

          int age;

        } p,p1={10};

      3、定义匿名的结构体类型的同时定义结构体变量

         struct {

            int age;

         } p;

         1、结构体类型不可以重复使用

     结构体类型的作用域

     1、定义在函数内部它与局部变量相同

     2、定义在函数外部它与全局变量类似

        1、全局变量可以声明,结构体不可以声明

        2、全局变量是整个项目有效,结构体定义仅在本文件有效

    结构体数组:存储结构体的数组

    结构体指针:指针向结构体的指针

    struct Person* pp = &p;

    pp->age = 10;

    结构体与函数

    1、结构体变量作为函数参数传递是值传递(成员拷贝)

    2、结构体指针作为函数参数传递是地址传递

    

   枚举:当一个变量只有几个固定的取值的时候,使用枚举

   作用:提高代码的可读性,方便程序员之间的交流

   特点:先定义枚举类型,然后定义枚举变量

   定义枚举类型的格式:

    enum 枚举类型名称{

         成员,

         ...

    };

    当定义枚举类型的时候,同时定义了多个常量,成员名称就是常量名称

    枚举的本质是整形

    枚举成员的值默认从0开始,依次递增1,我们可以为某个成员指定数值,那么从它以后所有成员都是在它的基础上递增1;

   

    typedef : 给数据类型起别名

    格式: typedef 原类型名称 新类型名称(外号)

    1、基本数据类型

    2、指针起别名

    3、结构体类型(最多)

    4、枚举类型(最多)

    5、函数指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: