三、多維數(shù)組
多維數(shù)組的一般說明格式是:
類型 數(shù)組名[第n維長(zhǎng)度][第n-1維長(zhǎng)度]......[第1維長(zhǎng)度];
這種說明方式與BASIC、FORTRAN等語言中多維數(shù)組的說明不一樣。
例如:
int m[3][2]; /*定義一個(gè)整數(shù)型的二維數(shù)組*/
char c[2][2][3]; /*定義一個(gè)字符型的三維數(shù)組*/
數(shù)組m[3][2]共有3*2=6個(gè)元素, 順序?yàn)?
m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1];
數(shù)組c[2][2][3]共有2*2*3=12個(gè)元素, 順序?yàn)?
c[0][0][0], c[0][0][1], c[0][0][2],
c[0][1][0], c[0][1][1], c[0][1][2],
c[1][0][0], c[1][0][1], c[1][0][2],
c[1][1][0], c[1][1][1], c[1][1][2],
數(shù)組占用的內(nèi)存空間(即字節(jié)數(shù))的計(jì)算式為:
字節(jié)數(shù)=第1維長(zhǎng)度*第2維長(zhǎng)度*...*第n維長(zhǎng)度*該數(shù)組數(shù)據(jù)類型占用的字節(jié)數(shù)
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"; /*定義字符型指針變量并初始化*/
}
多維數(shù)組的一般說明格式是:
類型 數(shù)組名[第n維長(zhǎng)度][第n-1維長(zhǎng)度]......[第1維長(zhǎng)度];
這種說明方式與BASIC、FORTRAN等語言中多維數(shù)組的說明不一樣。
例如:
int m[3][2]; /*定義一個(gè)整數(shù)型的二維數(shù)組*/
char c[2][2][3]; /*定義一個(gè)字符型的三維數(shù)組*/
數(shù)組m[3][2]共有3*2=6個(gè)元素, 順序?yàn)?
m[0][0], m[0][1], m[1][0], m[1][1], m[2][0], m[2][1];
數(shù)組c[2][2][3]共有2*2*3=12個(gè)元素, 順序?yàn)?
c[0][0][0], c[0][0][1], c[0][0][2],
c[0][1][0], c[0][1][1], c[0][1][2],
c[1][0][0], c[1][0][1], c[1][0][2],
c[1][1][0], c[1][1][1], c[1][1][2],
數(shù)組占用的內(nèi)存空間(即字節(jié)數(shù))的計(jì)算式為:
字節(jié)數(shù)=第1維長(zhǎng)度*第2維長(zhǎng)度*...*第n維長(zhǎng)度*該數(shù)組數(shù)據(jù)類型占用的字節(jié)數(shù)
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"; /*定義字符型指針變量并初始化*/
}