目录
1.首先引用中国大学mooc中翁恺的一个代码例子:
01. #include<stdio.h>
02. int main()
{
03. struct date
{
04. int month;
05. int day;
06. int year;
07. }; //一定要注意在括号的外面要有一个;
08.
09. struct date birthday; //引入变量today
10.
11. birthday.month = 06;
12. birthday.day = 18;
13. birthday.year = 2003; //赋值
14. printf("My birthday is %i年%i月%i日.\n",
15. birthday.year,birthday.month,birthday.day);
16. return 0;
}
对这段代码进行分析,我们不难看出来year,month,day是结构date的三个分支。(3~6行) 而对于变量birthday 则是在struct date 类型下进行定义的,因此后面就有了birthday.year,birthday.month,birthday.day这三个变量。
2. 结构的形式
(1)struct point{
int x;
int y;
};
struct point p1,p2;
//p1,p2都是结构point。
//p1,p2下也有分支x,y
//可以构成p1.x或p1.y
(2)struct{
int x;
int y;
}p1,p2;
p1,p2都是一种无名结构,
里面有x和y
(3)struct point{
int x;
int y;
}p1,p2;
区别是1和3定义了结构point,对于(2)没有定义point只是定义了两个变量。
3.->的用法
对于结构来说,结构的指针和结构一样经常被用到,所以对于结构指针产生了一个新的符号" -> ",这个指针通常用作结构类型的p指针指向这个结构的成员。
(3)struct point{
int x; 对于这个结构来说,具体用法是p1->x或者p1->y
int y; 当然他同理于 (*p1).x或者(*p1).y
}p1,p2;
总结
结构体的功能是存放不同类型的数据,能够含有很多个不同类型的成员,与数组很像。首先有sturct,然后定义一个struct类型变量,那么这个变量中就含有着struct分支(即那么多的成员)。