结构体

作者: SimpleSJ | 来源:发表于2018-10-30 17:56 被阅读0次

    1.什么是结构体

    • 在实际问题中,一组数据往往具有不同的数据类型,而结构体就是用于保存一组不同类型的数据.结构体是一种“构造”而成的数据类型,那么在说明和使用之前必须先定 义它,也就是构造它。

    2.为什么要有结构类型?

    • 结构体可以把功能相同的数据组织起来(封装数据),存在一起,用的时候方便
    • 在调用函数时,若 传递参数较多,传一个结构体相对而言简单一些。
    • iOS开发中经常需要使用结构体

    3.结构体类型的定义方式

    • 方式一:先定义结构体类型,再定义变量
    struct Student {
         char *name;
         int age;
     };
     struct Student stu;
    
    • 方式二:定义结构体类型的同时定义变量
    struct Student {
        char *name;
        int age;
    } stu;
    
    • 方式三:匿名结构体定义结构体变量

    第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量,这种结构体最大的问题是,不能再次定义新的结构体变量了。

    struct {
        char *name;
        int age;
    } stu;
    

    4.如何访问结构体变量的成员?

    struct Student {
         char *name;
         int age;
     };
     struct Student stu;
     // 访问stu的age成员
     stu.age = 27;
     printf("age = %d", stu.age);
    

    5.结构体变量的初始化

     struct Dog
        {
            char *name;
            int age;
            double height;
        };
        // 1.定义的同时初始化
        struct Dog sd = {"wc", 13, 5.0};
    
     // 2.先定义再初始化(逐个初始化)
        struct Dog sd1;
        sd1.name = "ww";
        sd1.age = 5;
        sd1.height = 10.9;
    
        // 3.先定义再初始化(一次性初始化)
        struct Dog sd2;
        // 特别注意: 结构体和数组有一点区别, 数组不能先定义再进行一次性的初始化, 而结构体可以
        // 只不过需要明确的告诉系统{}中是一个结构体
        sd2 = (struct Dog){"xq", 8, 8.8}; // 数组? 结构体?
        
        // 4.指定将数据赋值给指定的属性
        struct Dog sd3 = {.height = 1.77, .name = "ww", .age = 33};
    

    相关文章

      网友评论

          本文标题:结构体

          本文链接:https://www.haomeiwen.com/subject/yhigtqtx.html