声明结构类型
#include <stdio.h>
//声明一种新的结构类型
struct date{
int month;
int day;
int year;
};
int main(void)
{ //定义这种结构类型的变量
struct date today;
today.month=07;
today.day=31;
today.year=2014;
printf("Today's date is %i-%i-%i.\n",
today.year,today.month,today.day);
return 0;
}
该结构在主函数内/外
- 和本地变量一样,在函数内部声明的结构类型只能在函数内部使用
- 所以通常在函数外部声明结构类型,便可被多个函数所使用
声明结构的形式
结构的初始化
结构成员
结构和数组有些像
- 数组用[]运算符和下标访问其成员,a[1]=10;
- 结构用 . 运算符和名字访问其成员, today.day
结构运算
- 要访问整个结构,可直接用结构变量的名字
- 对于整个结构,可以赋值、取地址、传递给函数参数
- pl=(struct point){5,10};//相当于pl.x=5 pl.y=10
- p1=p2;//相当于p1.x=p2.x p1.y=p2.y
结构指针
- 和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符
struct date *pDate=&today;