阅读须知:
结构体部分内容,涉及结构体定义,结构体变量,结构体指针,结构体数组,更多内容敬请关注。
结构体是由若干个"成员"组成的,每一个成员要有成员名称和类型,成员可以是基本数据类型或者一个结构体。一旦定义结构体类型,使用它的方式和其他类型一样,可以声明这个结构体的对象、指针和数组。下面我们先来定义一个描述歌曲的结构体:
上面的song就是一个机构体,它包含有4个成员,成员分别有不同的数据类型,通过上面的例子我们能总结出定义结构的一般格式:struct 结构体名称 {成员列表};
struct是一个C语言的关键字,是定义结构体所必须的。[结构体名称]就是上面的song,有时候可以省略。成员列表必须用花括号{}括起来,最后是分号。
想要使用结构体,就必须先声明结构体变量,如果你想说在上个练习中的song是变量的话,那你就大错特错了。song是我们定义的结构体名称,就想int一样,只不过song是我们定义的,而int是C语言定义好的。我们可以使用2种方式来声明结构体变量:
定义好结构体后再声明变量
在定义机构体时就声明变量
当我们使用这种方式声明结构体变量时,结构体名称song可以省略不写。 如果我们想使用结构体song1中的成员时:song1.title或者song1->title (->:指针只想运算符)
小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程
当我们有很多个结构体变量时,我们可以使用结构体数组,比如我们有3首歌的时候:
或者
结构体指针当然我们也可以先定义结构体数组,然后再对它们进行赋值。
结构体指针顾名思义就是指向结构体的指针,具体的这个指针会指向该结构体的某个变量。声明一个结构体指针变量的形式:
struct 结构名 *结构指针变量名
比如我们声明一个指向song结构体的指针变量:
struct song *ps;struct song song1, song2;
给指针ps赋值则是:
ps = &song1;
当然我们也可以在声明指针时就给ps赋值。我们可以通过指针来使用song1中的成员:(*ps).title或者ps->title
注意
指针ps只能指向结构体变量song1或song2,但是不能指向结构体名song
使用"."和"->"时的不同方式。
结构体指针不但能指向结构体变量,还可以指向结构体数组,比如上个练习中我们使用的songs数组:ps = songs,这代表指针ps指向songs数组的首地址