數組的初始化,需要通過一常量數據列表,對其數組元素分別進行初始化,形式如下:
數據類型 數組名稱[數組長度]={初始化值1,初始化值2,…, 初始化值n};
例如,定義長度為5的整型數組,并對其初始化的語句如下:
int A[5]={20,21,0,3,4};
結構體變量的初始化方式與數組類似,分別給結構體的成員變量以初始值,而結構體成員變量的初始化遵循簡單變量或數組的初始化方法。具體的形式如下:
struct 結構體標識符
{
成員變量列表;
…
};
struct結構體標識符 變量名={初始化值1,初始化值2,…, 初始化值n };
例如,定義struct Point類型變量,并初始化的語句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point類型變量oP1的三個成員變量的值分別為
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由于定義結構體變量有三種方法,因此初始化結構體變量的方法對應有三種,上面已經介紹了其中的一種形式,其他兩種形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化結構體變量時候,既可以初始化其全部成員變量,也可以僅僅對其中部分的成員變量進行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相當于a.id=0;a.name=“”;a.sex=‘\0x0’。
僅僅對其中部分的成員變量進行初始化,要求初始化的數據至少有一個,其他沒有初始化的成員變量由系統完成初始化,為其提供缺省的初始化值。
各種基本數據類型的成員變量初始化缺省值如下所示。
數據類型
缺省初始化值
Int
0
Char
‘\0x0’
float
0.0
double
0.0
char Array[n]
“”
int Array[n]
{0,0…,0}
對于復雜結構體類型變量的初始化,同樣遵循上述規律,對結構體成員變量分別賦予初始化值。