当然在定义无名结构类型时也可以对同时定义 的结构变量指定初始化值。例如 struct i 数据类型名1成员名1; 数据类型名2成员名2 数据类型名n成员名n; }结构变量名1={初始化值表1}, 结构变量名n={初始化值表n}
21 当然在定义无名结构类型时也可以对同时定义 的结构变量指定初始化值。例如: struct { 数据类型名1 成员名1 ; 数据类型名2 成员名2 ; ……… 数据类型名n 成员名n ; } 结构变量名1 = { 初始化值表1 } , ……… 结构变量名n = { 初始化值表n } ;
其中初始化值表;列出了结构变量名;的各个 成员的初始化数据。 这些数据项都必须是常量,且给出的数据个数 顺序、类型应与结构变量的成员的个数、顺序、 类型一致,它们之间用逗号隔开。 C编译程序将把它们顺序赋给结构变量名;对 应的成员名;。 下面几个例子给出了结构变量初始化的几种不 同形式。 22
22 其中 初始化值表i 列出了 结构变量名i 的各个 成员的初始化数据。 这些数据项都必须是常量, 且给出的数据个数、 顺序、类型应与结构变量的成员的个数、 顺序、 类型一致,它们之间用逗号隔开。 C编译程序将把它们顺序赋给 结构变量名i 对 应的成员名i 。 下面几个例子给出了结构变量初始化的几种不 同形式
示例1 struct date birthdate = 14,sep, 1947, nationalday=(1, oct,1949), hiredate=(2, dec,1970); 示例2: struct float eletronic int gas int water } paybill={286.3,140,33}; 23
23 struct date birthdate = { 14 , "sep " , 1947 } , nationalday = { 1 , "oct " , 1949 } , hiredate = { 2 , "dec", 1970 } ; 示例1: struct { float eletronic ; int gas ; int water ; } paybill = { 286. 3 , 140 , 33 } ; 示例2:
示例3: struct employee i char name 20 double salary long tel char sex struct date birthdate } person1={"wang",209686,83594107,F", 14,"sep",1950}, person2={"Chen",3200.31,83594298,"M', 23,"ju",1937}, person3={"Zhen",1663.45,83592623,F", 18,"may",1963}; 24
24 struct employee { char name[20] ; double salary ; long tel ; char sex ; struct date birthdate ; } person1 = { "Wang" , 2096.86 , 83594107 , 'F', 14 , "sep" , 1950 } , person2 = { "Chen" , 3200.31 , 83594298 , 'M' , 23 , "jul" , 1937 } , person3 = { "Zhen" , 1663.45 , 83592623 , 'F', 18 , "may" , 1963 } ; 示例3 :
114结构变量的引用 结构变量与数组在很多方面都是类似的 (a)它们的元素成员都必须存放在一片连续 的存储空间中 (b)通过存取数组元素来访问数组,而对结构 通过存取结构变量的成员来访问结构变量; (c)数组元素有数组元素的表示形式,结构变 量的成员也有它的专用表示形式等等
25 11.4 结构变量的引用 结构变量与数组在很多方面都是类似的: (a) 它们的元素/成员都必须存放在一片连续 的存储空间中; (b) 通过存取数组元素来访问数组,而对结构 通过存取结构变量的成员来访问结构变量; (c) 数组元素有数组元素的表示形式,结构变 量的成员也有它的专用表示形式等等