A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dushoupeng 中级黑马   /  2015-7-11 10:13  /  599 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


8.学过的类型:基础数据类型、指针、空类型 void、构造类型(数组、结构体)、定义类型

9.枚举类型(是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型)

       C语言提供了一个种类型,这种类型的变量的取值被限定在一定的范围之内了



    枚举类型的定义:



       enum 枚举类型名{ 枚举值1,枚举值2,.... };



    举例:



       定义一个变量,保存一周的第几天



       enum weekday{zhouyi,zhouer,zhousan,zhousi,zhouwu ,zhouliu,zhouri };



       定义iPhone手机的颜色



       关于枚举类型元素的命名习惯



       enumiColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};



       定义人得性别

       enum Sex{kSexMan,kSexWomen,kSexYao};





       //weekday  iColor Sex 这些都是枚举类型



*/





#include <stdio.h>

//全局的枚举类型

    enum Sex{kSexMan,kSexWomen,kSexYao};

int main(int argc, const char * argv[]) {



    //定义局部的枚举类型

    enum weekday{ zhouyi,zhouer,zhousan,zhousi,zhouwu,zhouliu,zhouri };



    enum iColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};







    return 0;

}

10.枚举类型变量

枚举类型的变量



   枚举类型的变量的定义



       enumiColor{kIcolorWhite,kIcolorBlack,kIcolorTHJ};



       1)先定义枚举类型,再定义枚举变量



           enum 枚举类型名 枚举变量名列表;



           enum iColor  iPhoneColor; //iPhoneColor的取值是有要求的

                                      //取值应为kIcolorWhite,kIcolorBlack,kIcolorTHJ中的其中一个









       2)定义枚举类型的同时,定义变量



          enum Sex{kSexMan,kSexWomen,kSexYao}isex;





*/





#include <stdio.h>



//默认值              0           1            2

//手动赋值            5            6            7

enumiColor{kIcolorWhite=5,kIcolorBlack,kIcolorTHJ};



int main(int argc, const char * argv[]) {



    //1、枚举类型变量的定义

    enum iColor iPhoneColor;  //iPhoneColor的取值是有要求的

    //取值应为kIcolorWhite,kIcolorBlack,kIcolorTHJ中的其中一个



    enum Sex{kSexMan,kSexWomen,kSexYao} isex;



    //2、枚举类型变量的初始化



    //给枚举变量赋值

    iPhoneColor = kIcolorTHJ;

    isex = kSexYao;



    //3、枚举变量如何使用

    printf("%d\n",iPhoneColor);



    //4、枚举变量的值

    //枚举类型定义完成以后,系统会自动给枚举的每个元素都会赋值一个整形的初值

    // 默认初值:从第一个元素开始值为0,以后个元素的值,是上一个元素的值+1,

    //



    //5、应用

    struct Person{



        char *name;

        //char sex; //'z'

        enum Sex isex; //kSexMan,kSexWomen,kSexYao



    };



    //6、不按套路的出牌

    iPhoneColor = 3.4;  //尽量不要这么干

    printf("%d\n",iPhoneColor);





    return 0;

}

11.typedef关键字:

typedef就是给数据类型取别名

定义一般类型:

typedef 原类型名 新类型名;

其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。

有时也可用宏定义来代替typedef的功能,但是宏定义是预处理完成的,而typedef则是在编译时完成的,后者更为灵活。

#include <stdio.h>



int main(int argc, const char * argv[]) {



    //typedef就给给别人起外号

    int a = 10;

    printf("%d\n",a+10);



    //给int起个别名

    typedef int MALATANG;  //typedef语句要以分号结束

    //用别名定义了一个新的变量 qiezi

    MALATANG qiezi = 3;

    MALATANG *p = &qiezi;



    printf("%d\n",qiezi+100);

    printf("%d\n",*p);



    return 0;

}

12.typedef的使用方法:

#include <stdio.h>

int sum(int a,int b){



    return a+b;



}



int jian(int a,int b){



    return a-b;



}



int main(int argc, const char * argv[]) {

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马