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