需求
需要用到类似python二维列表的功能,查看了下C语言中可用结构体数组实现。
一 结构体
结构体类型的定义
struct 结构体类型名
{
数据类型 成员名1;
数据类型 成员名2;
...
数据类型 成员名3;
};
//例如,定义一个student的结构体类型:
struct student
{
long num;
char name[20];
char sex;
int age;
char addr[30];
};//以上定义中,结构体类型student由5个成员名组成
结构体变量的定义
结构体变量的定义有3种方法。
1 先定义结构体类型再定义结构体变量
struct student
{
long num;
char name[20];
char sex;
int age;
char addr[30];
};
struct student stu1,stu2;
//这样就定义了stu1和stu2为struct student类型的结构体变量
2 在定义结构体类型的同时定义结构体变量
struct student
{
long num;
char name[20];
char sex;
int age;
char addr[30];
} stu1,stu2;
//这样在定义了结构体类型的同时定义了stu1和stu22个结构体变量
3直接定义结构体类型变量
struct
{
long num;
char name[20];
char sex;
int age;
char addr[30];
} stu1,stu2;
//注意,该结构体变量无名
结构体数组
结构体数组的定义
定义结构体数组的一般形式为:
struct 结构体类型名 结构体数组名[元素个数];
例如
struct student
{
long num;
char name[20];
char sex;
int age;
char addr[30];
} stu[30];
结构体数组的初始化及赋值
struct student
{
long num;
char name[20];
float score;
};
struct student stu[10] = { {11,"zhangsan",60.5},{12,"lisi",80},{13,"zhaowu",90}};
参考资料
C语言程序设计教程第3版 朱鸣华著