结构体
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结构体指针的别名