C Primer Plus学习 四十三 结构变量

结构声明(structuredeclaration)是描述结构如何组合的主要方法。声明就像下面这样:
struct book {
char title[MAXTITLJ; char author[MAXAUTL】: float value:

};

词语“结构”(structure)有两个意思。'个意思是“结构设计”,这个我们刚刚已经讨论过了。结构 设计告诉编译器如何表        示数据,但是它没有让计算机为数据分配空间。下-步是创建一个“结构变量”, 即这个词的第二个意思。程序中创建结构变量的那一行如下:

struct book library:

       在结构变量的声明中,struct book所起的作用就像int或float在较简单的声明中的作用一样。例如, 可以定义两个struct book类型的变量,甚或可以定义一个指向该结构的指针:

struct book doyle. panshin. * ptbook;

        结构变量doyle和panshin均包含title、author和value部分。指针prbook可以指向doyle、panshin, 或任何其他book结构变量。实际上,book结构的声明创建了一个名为structbook的新类型。
        就计算机而言,下面的声明:

struct book library:

是以下声明的简化:

struct book {

char title[MAXTITLj;

char author[AXAUTL]; 

float value:

library;//在定义之后根变量名

        换句话说,声明结构的过程和定义结构变量的过程可以被合并成一步。如下所示,将声明和变量定义 合并在一起,是不需要使用标记的一种情况。

struct { /* 无标记 */

char title[MAXTITL]; char author[MAXAUTL]; float value:

} library;

        然而,如果您想多次使用一个结构模板,就需要使用带有标记的形式;或者您也可以使用本章后面部 分将要讲到的typedef

结构的指定初始化项目

        C99支持结构的指定初始化项目,其语法与数组的指定初始化项目相似。只是,结构的指定初始化项 目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员 value,可以这样做:

struct book surprise = { .value = 10.99};

可以按照任意的顺序使用指定初始化项目:

struct book gift = { .value = 25.99.

.author = "James Broadfool",

.title = "Rue for the Toad"}:

        正像数组一样,跟在一个指定初始化项目之后的常规初始化项目为跟在指定成员后的成员提供了初始 值。另外,对特定成员的最后一次賦值是它实际获得的值。例如,考虑下列声明:

struct book gift= { .value = 18.90t

.author = "Philionna Pestle",

0.25);

        这将把值0.25陚给成员value,因为它在结构声明中紧跟在author成员之后。新的值0.25代替了早先 的賦值18.90。既然您己经掌握了这些基础的内容,现在,您可以拓宽学习内容来了解结构的一些相关类型。 我们将学习结构数组、嵌套结构、指向结构的指针和处理结构的函数。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值