1、简介
结构是用同一个名字引用的相关的集合(或称聚合题),它是用其他类型的对象构造出来的派生数据类型。
struct player/*要害字struct定义一个结构*/
{
int number;/*声明一个int型的number*/
char *name;
char *nationality;
}
在struct后边的player就变成了像int,一样的声明符。
main()
{
struct player A;/*声明一个player型的结构A*/
struct player *aptr;/*声明一个指针*/
......
}
数组与结构一瞥:
相同点 特点 数组都是聚合体数组种植包含相同的数据类型的元素,每个元素都有在数组下的一个数标,如:s[n] 结构 可包括多种不同数据类型的变量。(本篇大部分都在介绍结构,在这里就不多说了) 枚举 利用要害字enum声明枚举,一般用来声明元素有规律的对象体,例如:月份,日期,星期等。 联合 利用要害字union声明联合,联合的每个成员的地址就是联合对象的地址,之所以他们公用一个地址,所以联合又叫共同体,也因此只有最后赋给联合成员的值才有效。
符号名称读法用法 . 结构成员运算符结构A的成员number A.number -> 结构指针运算符 aptr指向结构的成员 aptr->number
结构初始化:
结构初始化有两种:
1. 用初始化列表初始化,即在声明结构变量时,在变量明后用等号连接在花括号中的初始化值列表来初始化该结构变量,初始化值用逗号分开。例如:
struct player A={5,“Xiaogang”,“China”};
2. 利用访问结构成员初始化。
例如:
A.number=5;
A.name="Xiaogang"
A.nationality="China";/*效果于1定义得一样*/
aptr ->number=5;
aptr ->name="Xiaogang";
aptr ->nationality="China";/*效果于1定义得一样*/
要害字typedef:
typedef 可用来建立已定义好的数据类型的别名。例如:
typedef struct player Player;
定义型的类型名Player,它是类型struct player的别名。
*结构的重要性是不言而喻的,他和指针可用来构造更复杂的数据结构,例如:链表、队列、堆栈和树。