2025年------------------- 其他数据类型 -------------------

------------------- 其他数据类型 -------------------Java 培训 Android 培训 iOS 培训 Net 培训 期待与您交流 枚举 枚举类型 用来把所有的可能的值都列举出来 枚举类型的作用 把某个变量的取值 限定在一定范围之内 枚举类型的定义 enum 枚举类型名 枚举值列表 注意

大家好,我是讯享网,很高兴认识大家。

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

//  枚举

 枚举类型

 

    用来把所有的可能的值都列举出来

 

    枚举类型的作用:

 

    把某个变量的取值,限定在一定范围之内

 

    枚举类型的定义:

 

    enum  枚举类型名{ 枚举值列表};

 

    注意:

 

    1> 枚举类型不是构造类型(它的元素值,都是int类型),因为他得

 每个元素不能再分解为其它的基本数据类型数据

 

    2> 枚举值: 标示符

 

    3> 枚举类型也分为:全局的和局部的

 

 

    举例:

 

    enum weekday{zhoyi,zhouer,zhoushan,zhousi,zhouwu

 zhouliu,zhouri};

#include <stdio.h>

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

    

    // 定义了一个星期的枚举类型

    enum weekday{zhoyi,zhouer,zhoushan,zhousi,zhouwu

        zhouliu,zhouri};

    return 0;

}

    枚举变量:

 

    用枚举类型定义的变量,就事枚举变量

 

 

    枚举变量的定义方法:

 

    1> 定义枚举类型的时候,定义变量

 

    enum sex{kSexMan,kSexWomen,kSexYao} isex;

 

    enum {kSexMan,kSexWomen,kSexYao} sex;

 

    2>先定义枚举类型,再定义变量

 

 枚举变量的初始化和使用

 

    enum sex s1;// s1的取值被限定了范围,

                //只能取kSexMan,kSexWomen,kSexYao其中一个

 

 关于枚举类型的值的问题

 

    1> 默认值

 

    枚举类型,一旦定义,系统会默认的给枚举类型的每个元素一个初始值

 

        //      0       1         2

    enum sex{kSexMan,kSexWomen,kSexYao};

 

 

                //  0       1      2      3       4      5       6

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

 

 

    2>可以给枚举类型的元素,指定初始值

*/

#include <stdio.h>

int main(){

    

    //枚举变量定义方式一

    enum sex{kSexMan,kSexWomen,kSexYao} isex;

    

    //枚举变量定义方式二

    //enum {kSexMan,kSexWomen,kSexYao} sex;

    

    //枚举变量定义方式三

    enum sex s1,s2;//定义一个枚举类型的变量,变量名为s1,s2

    

    //这是给枚举变量赋值,注意:枚举变量只能被赋值枚举类型中定义的某个值

    

    s1 = kSexMan;

    

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

    

    //定义一个新的枚举类型

    //             0      1       2       8       9      10     11

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

    

    enum weekday day;

    

    day = zhousi;

    

    printf("day = %d\n",day);  //8

    printf("xxxx = %d\n",zhousan); //2

    printf("%d\n",zhouwu);  //9

    return 0;

}

 typedef 是一个关键字,定义类型

 

 定义类型:

    

    给一个已经存在的类型,起个别名 (外号)

 

 定义类型的使用

 


讯享网

    格式: typedef 原类型 新类型(别名)

 

 

 */

#include <stdio.h>

void test1(){

    

    //1>给基本数据类型起别名

    //int ---> AV

    typedef int AV;

    //用新的定义变量

    // num==AV

    

    AV num = 18;

    

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

    

}

void test2(){

    

    //给数组起别名

    int a[5];

    //int类型 长度为5 的数组起个别名

    typedef int ARRAY[5];

    //使用ARRAY定义了两个长度为5 并且是整形数组,数组名分别是a1,a2;

    ARRAY a1={ 1,2,3,4,5},a2;

    

    printf("%p,%p\n",a1,a2);

    

    //对数组变量

    for(int i =0;i<5;i++){

        printf("%d\n",a1[i]);

    }

}

void test3(){

    

    //给结构体起别名

    //形式一: 可以理解为把struct Student 给起个别名 STU

    typedef struct Student{

        int age;

        int no;

        

    }STU;

    

    //使用STU定义结构体变量

    //STU等价与struct Student

    STU stu1 = { 18,100};

    STU *pstu = &stu1;

    

    printf("%d,%d\n",pstu->age,pstu->no);

    

    //形式二:

    typedef struct {

        

        int age;

        int no;

        

    }STU1;

    STU1 s1 = { 12,3};

    

    //形式三:

    typedef struct Student SS;

    SS s2={ 22,4};

    

}

void test4(){

    

    //给枚举类型起别名

    typedef enum sex{kSexMan,kSexWomen,kSexYao} ISEX;

    //使用别名,定义枚举变量

    ISEX s1 =kSexMan;

    

    //第二种形式

    //给匿名的枚举类型起别名

    

    typedef enum {kColorYellow,kColorBlack,kColorTHJ} ICOLOR;

    

    ICOLOR color = kColorTHJ;

    

    printf("color:%d\n",kColorTHJ);

    

    //第三种形式

    typedef enum sex SS;

    SS s2 = kSexYao;

    printf("sex:%d\n",s2);

}

int sum(int a,int b){

    

    return a+b;

}

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

  

    //给函数指针起别名

    //使用函数名直接调用函数

    int m = sum(10,20);

    

    //定义函数指针

    //int (*psum)(int ,int )

    int (*psum)(int a,int b);

    //把函数的首地址赋值给psum

    psum = sum;

    m = (*psum)(80,20);

    

    //这是给函数指针起别名,别名是P

    //可以使用P定义函数指针变量,函数指针变量只能指向

    //返回int ,有两个int类型参数的函数

    typedef int (*P)(int,int);

    

    //p1是一个函数指针变量

    

    P p1,p2,p3;

    

    p1 = sum;

    m = (*p1)(100,20);

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

        return 0;

}


小讯
上一篇 2025-01-15 19:16
下一篇 2025-04-09 20:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35309.html