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,即中间的枚举变量将会按重新赋值后的值递增

posted @ 2012-09-09 17:18  haiyupeter  阅读(520)  评论(0)    收藏  举报