结构体

2017-12-25  本文已影响10人  MrLuo
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结构体指针的别名
上一篇下一篇

猜你喜欢

热点阅读