有時(shí)候,需要存儲(chǔ)一大堆相同類(lèi)型的數(shù)據(jù)的時(shí)候怎么辦掀宋?
我們雖然可以創(chuàng)建很多個(gè)變量深纲,但是終究不是辦法仲锄,這個(gè)時(shí)候我們就需要數(shù)組了。
在程序設(shè)計(jì)中湃鹊,為了處理方便儒喊,把具有相同類(lèi)型的若干變量按有序的形式組織起來(lái)。這些按序排列的同類(lèi)數(shù)據(jù)元素的集合稱(chēng)為數(shù)組涛舍。
數(shù)組解決了:
- 描述數(shù)組的性質(zhì)澄惊,定義數(shù)組變量
- 使用數(shù)組,包括通過(guò)數(shù)組變量使用其中的變量
- 實(shí)現(xiàn)數(shù)組富雅,即在內(nèi)存里為數(shù)組安排一種存儲(chǔ)方式掸驱,讓程序方便操作
定義
和普通基本類(lèi)型相似 都需要指定類(lèi)型 和 需要一個(gè)變量,區(qū)別是没佑,需要在變量名后加上 ,
而且在 內(nèi)需要指定數(shù)組的大小毕贼。
如
int a[10];// 定義一個(gè) int 類(lèi)型數(shù)組 a,長(zhǎng)度為 10
double b[5]; //定義一個(gè) double 類(lèi)型數(shù)組 b,長(zhǎng)度為 5
使用
使用數(shù)組的最基本是操作元素訪(fǎng)問(wèn)蛤奢。首元素下標(biāo)規(guī)定為 0 鬼癣,這樣,n 個(gè)元素的數(shù)組范圍就是從 0 到 n-1 啤贩。
如果超過(guò) n-1,則會(huì)報(bào)下標(biāo)越界錯(cuò)誤待秃。新手經(jīng)常犯這個(gè)錯(cuò)誤。
int a[4];
a[0] = 2;
a[1] = 10;
a[3] = a[1] + a[2];
顯然痹屹,這里我們看不出這里數(shù)組有多大作用章郁;
我們來(lái)看下 Fibonacci數(shù)的數(shù)組,獲取前30個(gè)數(shù)志衍,然后從大到小打印出數(shù)組內(nèi)的所有數(shù)
直接上代碼
long fib[30];
int n;
fib[0] = 1;
fib[1] = 1;
// 計(jì)算前30個(gè)數(shù)暖庄,并存入對(duì)應(yīng)數(shù)組內(nèi)
for(n =2;n<30;n++){
fib[n] = fib[n-1] + fib[n-2];
}
//打印結(jié)果
for(n=29;n>=0;n--){
printf("%d", fib[n]);
}
從這個(gè)例子可以看出, 利用循環(huán)變量可以統(tǒng)一形式訪(fǎng)問(wèn)一批數(shù)組楼肪,這樣做可以帶來(lái)很多方便培廓。用long 類(lèi)型的數(shù)組,是考慮到元素有可能變得很大春叫。
數(shù)組初始化
int b[4] = {1,2,3,4};
double d[3] = {1.23,2.34,4.11};
出一道小題給大家練練手肩钠,
題目:二進(jìn)制轉(zhuǎn)換 寫(xiě)一個(gè)函數(shù)命名為 bin2int, 給定一個(gè)二進(jìn)制數(shù)的 0/1 字符串暂殖,它能計(jì)算出這個(gè)字符串所表示的整數(shù)值价匠。
int main(){
int n = bin2int("11101110");
printf("%d\n",n);
return 0;
}
請(qǐng)大家完成 bin2int() 方法,在下面回復(fù)貼上代碼央星,最好帶上注釋解釋霞怀。