读书人

【C语言的学习】第十三回合:构造体大

发布时间: 2013-09-25 11:02:59 作者: rapoo

【C语言的学习】第十三回合:结构体大集合

第十三回合:结构体大集合

A: 结构体:是数据结构类型,把有内在联系的不同类型的数据统一成一个整体,使它们相互关联。又是变量的集合,可以单独使用其的成员。

定义:

struct 结构体名

类型标识符 成员名1;

类型标识符 成员名2;

……

}; //分号一定不能省

PS:

(1) 结构定义并不预留内存,结构体变量的定义才引起存储分配

(2) 结构体成员的数据类型可以是C语言的基本数据类型,也可以是数组和指针类型。还可以是自定义类型,成员的排列不分先后次序

(3) 结构体名是合法命名的标识符

(4) 结构定义仅描述了一个结构的形式。如果要在程序里使用结构,需要声明结构变量。

B: 结构体的输入输出

(a) 结构体变量不能整体输入输出,要通过成员运算符“.”,逐个访问其成员

如:

声明:

struct date

{ int year;

int month;

int day;

};

struct date birth;

输出的格式:

正确的输出格式:

printf("%d, %d, %d",birth.year, birth.month, birth.day);

下面的方法是错误的:

printf("%d,%d, %d",birth);

C:结构体变量的初始化

(a) 一般形式:

结构体类型名 结构体变量= {初始表};

(b)

1)间接初始化

strict ST

{

int num ;

char name[20];

char sex;

float score;

struct date birthday;

};

下面在main()中初始化

Struct STstudent ={102, "Zhangsan", 'M', 85,{1980,9,20}};

2)直接在结构体定义时初始化

strict ST

{

int num ;

char name[20];

char sex;

float score;

struct date birthday;

} student ={102, "Zhangsan", 'M', 85,{1980,9,20} } ;

D:结构体数组和结构体指针的定义、初始化跟上面的都一样,没什么不同。只不过结构体指针的访问除了用运算符“.”(点)访问,还可用指向运算符“->”访问(位置还是和用‘.’访问的位置一样)。


(复习做的笔记,还在整理中。。。。)

读书人网 >C语言

热点推荐