5.1.3 结构变量的初始化
在声明结构变量的同时,可以进行变量的初始化。
student stu1={"Ronaldo",30,70.5};或student stu1={{'R','o','n','a','l','d','o','\0'},30,70.5};
和数组一样,将用逗号分割的值列表用花括号括起来,以完成stu1的初始化。
事实上,可以将结构定义,变量声明和变量初始化放在一起来完成,见代码5.2。
代码5.2 结构变量的初始化InitialofStructVariable
<———————————文件名;example502.cpp————————————————> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 struct computer//定义结构computer 06 { 07 char brand[20];//成员1:字符数组brand,表示品牌 08 float price;//成员2:float型变量price,表示价格 09 }com1={"Dell",5000};//结构定义的同时声明该型变量并初始化 10 cout<<"电脑品牌:"<<com1.brand<<",价格:"<<com1.price<<endl;//输出 11 return 0; 12 }
【代码解析】代码第9行,是在定义结构的同时,声明了一个该结构的变量,并对其进行了初始化。
输出结果如下所示。
电脑品牌:Dell,价格:5000
注意
将结构定义和结构变量声明分开,有利于提高代码的可读性。
C++允许使用匿名结构,我们可以定义一个没有类型名称的结构,方法是省略名称,但一定要在结构定义的同时声明至少一个结构变量,否则这种用法没有意义,如下所示。
struct { char brand[20]; float price; }com1;
这样将创建一个名为com1的结构变量,可以通过com1.brand和com1.price来访问其内部成员,但这种类型没有名称,因此无法在以后的程序中声明这种类型的变量。