zoukankan      html  css  js  c++  java
  • C结构体与枚举类型

    结构体

    结构体声明

      struct 结构体标签{

        成员变量;

      } 结构体变量;

    结构体定义

    #include <stdio.h>
    #include <string.h>
    struct user {
            int count;
            char name[20];
    }leader[3]={0, "Li", 0, "Zhang", 0, "Fun"};
    int main(int argc, char *args[]) {
            int i;
            for (i = 0; i < 3; i++) {
                    printf("%s\n", leader[i].name);
            }   
            return 0;    
    }

    结构体的成员访问

    通过.号进行成员访问,若通过指针指向结构体,访问为(*p).attr;或者是p->attr,同理可得

    #include <string.h>
    #include <malloc.h>
    struct user {
            int count;
            char name[20];
    }leader[3]={3, "Li", 8, "Zhang", 9, "Fun"};
    int main(int argc, char *args[]) {
            int i;
            for (i = 0; i < 3; i++) {
                    printf("%s\n", leader[i].name);
            }   
            // 指向结构体的指指针
            struct user *user1;
            user1 = (struct user *)malloc(sizeof(struct user));
            printf("%d\n", user1->count);
            strcpy(user1->name, "Haiyu");
            printf("%s\n", user1->name);
            // 指向结构体数组的指针
            struct user *p = leader;
            printf("%d\n", p->count);
            return 0;        
    }

     枚举类型

    简单来说,枚举相当于一组简单数值常量的集合。

    枚举的定义是:枚举是指将变量的值一一列举出来,变量的值只限于列举出来的范围内。

            enum status{
                    NOT_PAY, HAD_PAY
            };
            printf("%d\n", HAD_PAY);

    输入结果为:1

    默认枚举类型第一位是0,每次递增1,若中途有重新赋值,如:

            enum status{
                    NOT_PAY, HAD_PAY, UN_START=100, UN_USED, HAD_USED
            };
            printf("%d\n", UN_USED);

    输出结果为101,即中间的枚举变量将会按重新赋值后的值递增

  • 相关阅读:
    智能手机
    Micro LED
    paper-10-IRM-in-MANETs
    INFOCOM
    如何基于 Android Things 构建一个智能家居系统?
    (OK) VNCserver
    CCF 2016-04-2 俄罗斯方块
    CCF 2016-04-1 折点计数
    洛谷 P1927 防护伞
    洛谷 P1843 奶牛晒衣服
  • 原文地址:https://www.cnblogs.com/haiyupeter/p/2676162.html
Copyright © 2011-2022 走看看