结构体

作者: MrLuo | 来源:发表于2017-12-25 17:26 被阅读10次
    1.概念:

    结构体是一种构造数据类型,把不同的数据类型整合起来成为一个自定义的数据类型

    struct Man{
        //成员
        char name[20];
        int age;
        //int(*func)();
    };
    
    2.写法:
    struct Man{
        char name[20];
        int age;
    } m1, m2 = {"jack",20}; //m1结构体变量名
    
    //匿名结构体
    //控制结构体变量的个数(限量版),相当于单例
    /*
    struct{
        char name[20];
        int age;
    }m1;
    
    //结构体嵌套
    /*
    1.外部嵌套
    struct Teacher{
        char name[20];
    };
    struct Teacher{
        char name[20];
    };
    2.内部嵌套
    struct Student{
        char name[20];
        int age;
        struct Teacher{
            char name[20];
        } t;
    };
    
    

    2.结构体指针:
    struct Man m1 = {"Jack",30};
    struct Man *p = &m1;
    //“->”(箭头)是“(*p).”简写形式
    printf("%s,%d\n", p->name, p->age);
    

    2.结构体大小:
    struct Man{
        int age;
        double weight;  
    };
    
    void main(){
        //结构体变量的大小,必须是最宽基本数据类型的整数倍
        //提升读取的效率
        struct Man m1 = {20,89.0};
        printf("%#x,%d\n", &m1,sizeof(m1));
        getchar();
    }
    

    2.typedef 类型取别名
    //typedef 类型取别名
    1.不同名称代表在干不同的事情typedef int jint;  
    2.不同情况下,使用不同的别名
    #if defined(__cplusplus)
    typedef _JNIEnv JNIEnv;
    typedef _JavaVM JavaVM;
    3.书写简洁
    
    struct Woman {
        char name[20];
        int age;
    };
    //结构体取别名
    typedef struct Woman W;
    typedef struct Woman* WP;
    //简写
    typedef struct Woman{
        char name[20];
        int age;
            //函数指针
        void(*sayHi)(char*);
    } W, *WP;  //W 是woman结构体的别名, WP 是woman结构体指针的别名
    

    相关文章

      网友评论

          本文标题:结构体

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