当前位置:嗨网首页>书籍在线阅读

05-初始化结构

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.3.1 初始化结构

初始化变量和数组如下:

int count = 0;
int fibo[7] = {0,1,1,2,3,5,8};

结构变量是否也可以这样初始化?是的,可以。初始化一个结构变量( ANSI 之前,不能用自动变量初始化结构; ANSI 之后可以用任意存储类别)与初始化数组的语法类似:

struct book library = {
     "The Pious Pirate and the Devious Damsel",
     "Renee Vivotte",
     1.95
};

简而言之,我们使用在一对花括号中括起来的初始化列表进行初始化,各初始化项用逗号分隔。因此, title 成员可以被初始化为一个字符串, value 成员可以被初始化为一个数字。为了让初始化项与结构中各成员的关联更加明显,我们让每个成员的初始化项独占一行。这样做只是为了提高代码的可读性,对编译器而言,只需要用逗号分隔各成员的初始化项即可。

注意 初始化结构和类别存储期 第12章中提到过,如果初始化静态存储期的变量(如,静态外部链接、静态内部链接或静态无链接),必须使用常量值。这同样适用于结构。如果初始化一个静态存储期的结构,初始化列表中的值必须是常量表达式。如果是自动存储期,初始化列表中的值可以不是常量。