• 7.c语言程序设计---结构体、联合体、枚举类型


    结构体

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {    
        
        struct GamePlayerInfo //声明一个结构体,例如游戏中的一个结构体例子
        {
            char name[50]; //人物名字
            int HP; //HP 血量值
            int MP; //MP 魔法值
        };
    
        //使用
        struct GamePlayerInfo xiaoming = { "xiaoming",500,500 }; //初始化方式1
        struct GamePlayerInfo yaoguai = { .name = "yaoguai",.HP = 1000 }; //这样初始化也可以
        yaoguai.MP = 10000; //初始化方式3
        return 0;
    }
    //结构体里面还可以加结构体

    运行结果:

    typedef的使用
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {
    
        typedef struct GamePlayerInfo //typedef 给一个结构体起一个别名 Game
        {
            char name[50]; //人物名字
            int HP; //HP 血量值
            int MP; //MP 魔法值
        }Game;
    
        //使用
        Game xiaoming;
        xiaoming.MP = 10000; 
        return 0;
    }

    指针操作结构体

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {    
        
        struct GamePlayerInfo //声明一个结构体,例如游戏中的一个结构体例子
        {
            char name[50]; //人物名字
            int HP; //HP 血量值
            int MP; //MP 魔法值
        };
    
        //指针操作结构体
        struct GamePlayerInfo xiaoming = { "xiaoming",500,500 }; //实例化
        struct GamePlayerInfo * p; //声明一个指针p
        p = &xiaoming;  //p指向 xiaoming 这个结构,p就可以操作xiaoming 结构了
        printf("%s", p->name);
        printf("%s", (*p).name);
        return 0;  
    }

    运行结果:

    联合体

    联合体里面的成员都使用同一个地址,节省空间

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {    
        
        union Info
        {
            char name[50]; //人物名字
            int HP; //HP 血量值
            int MP; //MP 魔法值
        };
    
        union Info MyInfo;
        strcpy(MyInfo.name, "NPC"); //strcpy:字符串复制函数,把NPC复制到 MyInfo.name里面
        return 0;  
    }

    改第二个成员的值的时候,前面的成员的值就会乱码,所以同时只能使用一个成员

     修改第二个成员时(第一个成员name的值变为乱码):

    枚举类型

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main()
    {    
        
        enum color {red,blue,green}; //枚举类型 ,red=0,blue=1,green=2不断叠加
        printf("%d",blue);
        return 0;  
    }

  • 相关阅读:
    Python:Fatal error in launcher: Unable to create process using 问题排查
    接口测试及接口Jmeter工具介绍
    bug的分类和等级
    如何编写测试用例
    网络流入门--最大流算法Dicnic 算法
    Codevs 1004 四子连棋
    洛谷 P1072 Hankson 的趣味题
    Codevs 搜索刷题 集合篇
    洛谷 P1195 口袋的天空
    洛谷 P1362 兔子数
  • 原文地址:https://www.cnblogs.com/trevain/p/14466867.html
Copyright © 2020-2023  润新知