struct
摘自C语言中文网
结构体也是一种数据类型,它可以包含多个其他类型的数据。结构体可以包含多个基本类型的数据,也可以包含其他结构体,我们将它称为复杂数据类型或着构造数据类型。
结构体变量
struct stu {
string name;
int num;
int age;
};
struct stu stu1, stu2;
也可以在定义结构体的同时定义结构体变量:
struct stu {
string name;
int num;
int age;
} stu1, stu2;
这样书写简单,但是因为没有结构体名,后面就没法用该结构体定义新的变量。
需要注意的是,结构体是一种自定义的数据类型,是创建变量的模板,不占用内存空间;结构体变量才包含实实在在的数据,需要内存空间来存储。
typedef
整理自艾斯曼的博客
首先与#define的区别
#define:
#表示这是一条预处理命令。
例如:
#define M (a+b)
在对源程序编译时,首先在预处理中进行宏代换,用(a+b)置换所有宏名M,然后在进行编译。
typedef
typedef是在编译时被解释,让编译器来应付超越预处理器能力的文本替换。
替换
typedef char* STR;
STR str1, str2;
结合struct
struct stu {
string name;
int no;
int age;
};
struct stu stu1;
// 等同于
typedef struct stu {
string name;
int no;
int age;
}STU;
STU stu1;