C語(yǔ)言基礎(chǔ)教程(二)數(shù)據(jù)類型、變量和運(yùn)算符(9)

字號(hào):

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