4.5 變量的初始化和賦值
一、變量的初始化
變量的初始化是指變量在被說明的同時賦給一個初值。Turbo C2.0中外部變量和靜態全程變量在程序開始處被初始化, 局部變量包括靜態局部變量是在進入定義它們的函數或復合語句時才作初始化。所有全程變量在沒有明確的初始化時將被自動清零,而局部變量和寄存器變量在未賦值前其值是不確定的。
對於外部變量和靜態變量, 初值必須是常數表達式, 而自動變量和寄存器變量可以是任意的表達式,這個表達式可以包括常數和前面說明過的變量和函數。
1. 單個變量的初始化
例如:
float f0, f1=0.2;/*定義全程變量, 在初始化時f0被清零, f1被賦0.2*/
main()
{
static int i=10, j; /*定義靜態局部變量, 初始化時i被賦10, j不確
定*/
int k=i*5; /*定義局部變量, 初始化時k被賦10*5=50*/
char c='y'; /*定義字符型指什變量並初始化*/
.
.
.
}
2. 數組變量的初始化
例如:
main()
{
int p[2][3]={{2, -9, 0}, {8, 2, -5}}; /*定義數組p並初始化/*
int m[2][4]={{27, -5, 19, 3}, {1, 8, -14, -2}};/*定義數組m並初
始化*/
char *f[]={'A', 'B', 'C'}; /*定義數組f並初始化*/
.
.
.
}
從上例可以看出: Turbo C2.0中數組進行初始化有下述規則:
(1) 數組的每一行初始化賦值用"{}"並用","分開, 總的再加一對"{}"括起來,最後以";"表示結束。
(2) 多維數組的存儲是按最右維數的變量變化最快的原則。
(3) 多維數組存儲是連續的, 因此可以用一維數組初始化的辦法來初始化多維數組。
例如:
int x[2][3]={1, 2, 3, 4, 5, 6};/*用一維數組來初始化二維數組*/
(4) 對數組初始化時, 如果初值表中的數據個數比數組元素少,則不足的數組元素用0來填補。
(5) 對指針型變量數組可以不規定維數, 在初始化賦值時, 數組維數從0開始被連續賦值。
例如:
char *f[]={'a', 'b', 'c'};
初始化時將會給3個字符指針賦值, 即: *f[0]='a', *f[1]='b', *f[2]='c'。