第7章 结构体
1.结构体的声明
(1)定义一个结构一般形式为:
struct 结构名
{
成员列表
};
(2)成员表列由若干个成员组成,每个成员都是该结构的一个组成部分,对每个成员也必须作类型说明,形式为:
类型说明符 成员名:
2.结构类型变量的说明
(1)先定义结构,再说明结构变量。例:
struct Stu
{
int num;
char *name;
char *sex;
float score;
};
struct Stu boy1,boy2;
(2)在定义结构类型的同时说明结构变量。例:
struct Stu
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;
(3)直接说明结构变量。例:
struct
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;
//第一种方法维护方便,不易出错。
//注:结构体和类相似
C中不允许有类出现
结构体表示构造型数据类型
3.嵌套结构体
结构体也是一种递归定义:结构体的成员具有某种数据类型,而结构体本身也是一种数据类型。换句话说,结构体的成员可以是另一个结构体,即结构体可以嵌套定义。例:
//先调用数学方法
#include <math.h>
struct Point
{
int x;
int y;
};
struct Line
{
Point from;
Point to;
void Print()
{
double i=(from.x-to.x)*(from.x-to.x)+(from.y-to.y)*(from.y-to.y);
printf("%f",sqrt(i));
//sqrt为数学里的根号
};
};
int _tmain(int argc, _TCHAR* argv[])
{
Line Line;
Line.from.x=10;
Line.from.y=10;
Line.to.x=20;
Line.to.y=20;
Line.Print();
return 0;
};