4.5 變量的初始化和賦值
一、變量的初始化
變量的初始化是指變量在被說明的同時(shí)賦給一個(gè)初值。Turbo C2.0中外部變量和靜態(tài)全程變量在程序開始處被初始化, 局部變量包括靜態(tài)局部變量是在進(jìn)入定義它們的函數(shù)或復(fù)合語句時(shí)才作初始化。所有全程變量在沒有明確的初始化時(shí)將被自動(dòng)清零, 而局部變量和寄存器變量在未賦值前其值是不確定的。
對(duì)于外部變量和靜態(tài)變量, 初值必須是常數(shù)表達(dá)式, 而自動(dòng)變量和寄存器變量可以是任意的表達(dá)式, 這個(gè)表達(dá)式可以包括常數(shù)和前面說明過的變量和函數(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ù)組的每一行初始化賦值用"{}"并用","分開, 總的再加一對(duì)"{}"括起來, 最后以";"表示結(jié)束。
(2) 多維數(shù)組的存儲(chǔ)是按最右維數(shù)的變量變化最快的原則。
(3) 多維數(shù)組存儲(chǔ)是連續(xù)的, 因此可以用一維數(shù)組初始化的辦法來初始化多維數(shù)組。
例如:
int x[2][3]={1, 2, 3, 4, 5, 6};/*用一維數(shù)組來初始化二維數(shù)組*/
(4) 對(duì)數(shù)組初始化時(shí), 如果初值表中的數(shù)據(jù)個(gè)數(shù)比數(shù)組元素少, 則不足的數(shù)組元素用0來填補(bǔ)。
(5) 對(duì)指針型變量數(shù)組可以不規(guī)定維數(shù), 在初始化賦值時(shí), 數(shù)組維數(shù)從0 開始被連續(xù)賦值。
例如:
char *f[]={'a', 'b', 'c'};
初始化時(shí)將會(huì)給3個(gè)字符指針賦值, 即: *f[0]='a', *f[1]='b', *f[2]='c'。
3. 指針型變量的初始化
例如:
main()
{
int *i=7899; /*定義整型數(shù)指針變量并初始化*/
float *f=3.1415926; /*定義浮點(diǎn)數(shù)指針變量并初始化*/
char *s="Good"; /*定義字符型指針變量并初始化*/
}
二、變量的賦值
變量賦值是給已說明的變量賦給一個(gè)特定值。
1. 單個(gè)變量的賦值
(1) 整型變量和浮點(diǎn)變量
這兩種變量采用下列格式賦值
變量名=表達(dá)式;
例如:
main()
{
int a, m; /*定義局部整型變量a, m*/
float n; /*定義局部浮點(diǎn)變量f*/
a=100, m=20; /*給變量賦值*/
n=a*m*0.1;
}
說明:
Turbo C2.0中允許給多個(gè)變量賦同一值時(shí)可用連等的方式。
例如:
main()
{
int a, b, c;
a=b=c=0; /*同時(shí)給a,b,c賦值*/
}
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語言備考:C語言/C++編譯過程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |