taiyang2014

C语言结构体

作用: 创建一个新的数据类型, 可以卸载函数的内部或外部

结构:

   //struct 结构体名字{
        //    数据类型1 成员变量名1;
        //    数据类型2 成员变量名2;
        //           ...
        //           ...
        //    数据类型n 成员变量n;
        //};

        //结构体的命名规范:大驼峰法
        //多个成员变量之间用分号;隔开
        //结构体外层的大括号后面要加分号;

//    struct Student {
//        short number;
//        char name[20];
//        char sex;
//        float score;
//    };

        //定义一个结构体变量
        //struct 结构体名字  变量的名字 = {对应的每个成员变量的处置,用逗号隔开};
    
        //  struct Student student = {123, "Mike", 'F', 99.9};
    
        //获取成员变量的值
        //变量名.成员变量名(点语法)
        //student.number;
//    printf("%hd\n", student.number);

 

结构体的重命名

/*
 写法一
struct Rectangle {
    int lon;
    int width;
};
typedef struct Rectangle Rec;
 */
    //写法二

typedef struct Rectangle {
    int lon;
    int width;
    P dian;
}R;

 

typedef struct Student {
    short number;
    char name[20];
    char sex;
    float score;
}Stu;

 

结构体可以直接赋值

//    struct Student stu1 = {1314, "guozong", 'M', 99.9};
//    struct Student stu2 = {520, "qiaoming", 'M', 9.99};
//    struct Student stu3 = {0};

//    stu3 = stu1.score > stu2.score ? stu1 : stu2;
//    printf("number = %hd sex = %c name = %s score = %.2f\n", stu3.number, stu3.sex, stu3.name, stu3.score);

        //结构体内存占用
        //以最大成员变量类型所占空间为分配单位
        //按结构体成员声明顺序自上而下分配
        //注:分配空间不足以存储成员变量时,分配新的空间单位

//结构体数组
        // struct Student students[5] = {0};
    
    Stu students[5] ={
        {101, "aaa", 'f', 88.0},
        {102, "bbb", 'm', 89.0},
        {103, "ccc", 'f', 90.0},
        {104, "ddd", 'm', 99.0},
        {105, "eee", 'f', 97.0}
    };
    
    
    
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4 - i; j++) {
            
            if (students[j].score < students[j + 1].score) {
                Stu temp = students[j];
                students[j] = students[j + 1];
                students[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < 5; i++) {
        printf("num = %hd name = %s sex = %c score = %.1f\n", students[i].number, students[i].name, students[i].sex, students[i].score);
    }
    


     

 

posted on 2015-03-02 14:46  taiyang2014  阅读(355)  评论(0编辑  收藏  举报

导航