juliusun.com
第 35/50 节 冥河C语言教程
结构体可以由不同类型的多个成员组成。
数组也是由多个成员组成,不过数组内的所有成员都属于同种类型。当然,结构体成员也可以有同种类型。
稍有复杂的是,结构体定义分成两步:1、定义结构体类型;2、定义结构体变量
结构体类型定义格式如下:
struct 结构体类型名
{
类型 成员1;
类型 成员2;
……
类型 成员N;
};
注意定义结构体类型不要忘记后面的分号;,定义成员时不能设置成员值。成员赋值应该是定义结构体变量时的事,而不是定义结构体类型的时候。
例:
结构体变量定义格式如下:
struct 结构体类型名 结构体变量名
目前很多编译器可以省略struct关键字,直接写成:结构体类型名 结构体变量名。
例:
结构体变量可以在定义时赋值,也可以先定义后赋值。定义时赋值可以一次把所有成员全部赋值完毕。定义后赋值需要一个成员一个成员的赋值。
变量定义时赋值,用花括号{}括起成员,把成员按定义顺序依次给出,用逗号分隔。
例:
引用成员格式是结构体变量名后面跟点.运算符再接成员名,即:
结构体变量名 . 成员名
先定义后赋值,不能再用定义时初始化语法给所有成员赋值,需要依次给每个成员赋值。当然,如果某些成员不需要初始化,可以不对其赋值。
例:
结构体类型和变量定义、初始化值也可以写在一起,很容易想到,格式应为:
struct 结构体类型名 { 类型 成员1; 类型 成员2; …… 类型 成员N; }结构体变量1={初始值1},结构体变量2={初始值2},……,结构体变量N={初始值N};
多数时候我们是分开写的,毕竟结构体变量一般不会一次性定义完,是通过不同情况动态定义的。
举个例子熟悉一下,用户输入书籍信息,然后程序输出用户输入的信息,代码例:
效果图类似如下: