C语言结构体

来源:互联网 发布:中英文语音翻译软件 编辑:程序博客网 时间:2024/06/17 05:01

为什么需要结构体?
当我们需要把一些数据放在一起作为一个整体来对待,以便使程序逻辑表达更清晰的时候,我们就需要结构体。例如,我们需要一个数据模型来表示客户,这个客户的信息中包括姓名、年龄、电话等等,我们这个时候就可以定义一个结构体来表示这个客户。
怎么定义结构体?
我们在使用结构体的之前,必须先定义它,以便让编译器知道,这是一个结构体,这个结构体是怎么样的。
struct语句定义了 结构体的外观。下面是结构体的语法:
struct [structure tag]{
member definition;
member definition;

};
structrue tag 只是给结构体起了一个别名,它与后面定义的结构体变量没有直接的关系。在定义了结构体格式之后,就可以定义结构体变量了。(当然,你可以在定义结构的同时,定义相应的变量名,也就是在定义结构体的分号之前去定义一个或者多个变量名)。
如下是我们定义的一个结构体:
struct invStruct{
char names[25];
char model[15];
int age;
float tall;
};
我们可以把经常用到的结构体定义放在一个头文件中,然后在用到这个结构体的程序中用#include把头文件包含进来。定义结构体变量如下:
/#include “c:\inv.h”
main(){
struct invStruct iten1,item2,item3;
}
怎样使用结构体?
对于一般的结构体变量,我们用点运算符去获取结构体变量中成员:
structureVariableName.memberName
如果访问对结构体变量中的成员,需要用到结构指针运算符->:
structurePointerName->memberName
堆内存中结构体的操作,如下:
int ctr;
struct invStruct * items[3];
for(ctr = 0;ctr<3;ctr++)
{
items[ctr] = (struct invStruct *) malloc(sizeof(struct invStruct));
printf("\n Model: %s",items[ctr]->names);
printf("\n Model: %s",items[ctr]->model);
printf("\n Model: %d",items[ctr]->age);
}