C語(yǔ)言全方位講解數(shù)組的使用_第1頁(yè)
C語(yǔ)言全方位講解數(shù)組的使用_第2頁(yè)
C語(yǔ)言全方位講解數(shù)組的使用_第3頁(yè)
C語(yǔ)言全方位講解數(shù)組的使用_第4頁(yè)
C語(yǔ)言全方位講解數(shù)組的使用_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第C語(yǔ)言全方位講解數(shù)組的使用目錄一維數(shù)組的創(chuàng)建和初始化1.數(shù)組的創(chuàng)建2.數(shù)組創(chuàng)建方式3.數(shù)組的初始化一維數(shù)組的使用一維數(shù)組的存儲(chǔ)二維數(shù)組的創(chuàng)建與初始化1.二維數(shù)組的創(chuàng)建2.二維數(shù)組的初始化二維數(shù)組的存儲(chǔ)數(shù)組的越界總結(jié)接著上次的操作符的詳解,讓我們來(lái)簡(jiǎn)單了解C語(yǔ)言里的數(shù)組。

一維數(shù)組的創(chuàng)建和初始化

1.數(shù)組的創(chuàng)建

數(shù)組是一組相同類型的元素的集合。

2.數(shù)組創(chuàng)建方式

type_t(數(shù)組類型)arr_name(數(shù)組名)[const_n](用來(lái)指定數(shù)組大小)

3.數(shù)組的初始化

數(shù)組的初始化是在其定義的時(shí)候就應(yīng)該執(zhí)行的,如:為5個(gè)已經(jīng)知道的整形數(shù)據(jù)進(jìn)行排序

//正確

intArr[5]={1,2,3,4,5};

//而不能用下面這種方式

intArr[5];

Arr[5]={1,2,3,4,5};

因?yàn)閷?duì)于Arr[5]=來(lái)說(shuō),這是一個(gè)賦值操作,將右值賦值給左值,一切常數(shù)、字符和字符串都是右值。在這里{1,2,3,4,5};并不是右值的一種,所以這是錯(cuò)誤的。

另一個(gè)錯(cuò)誤是,Arr[5]下標(biāo)為5這個(gè)元素實(shí)際上并不存在的屬于數(shù)組的越界。

有數(shù)字類型的初始化,自然也有字符類型的初始化

字符類型初始化的兩種方式:

chararr[5]={'a','b','c','d','e'};

chararr[5]="abcde";

1.空字符是字符串的終止符(空字符本身不是字符串的一部分,所以字符串的長(zhǎng)度并不包含空字符)

2.操作字符串時(shí),必須保證字符串以空字符(\0)結(jié)尾(不以空字符結(jié)尾的字符序列,不是字符串)。

一維數(shù)組的使用

用單引號(hào)形式初始化的數(shù)組代表只有這些數(shù)據(jù),并且在末端不包含\0

總結(jié)

數(shù)組是使用下標(biāo)來(lái)訪問(wèn)的,下標(biāo)是從0開(kāi)始。數(shù)組的大小可以通過(guò)計(jì)算得到。Intsz=sizeof(arr)/sizeof(arr[0])

一維數(shù)組的存儲(chǔ)

當(dāng)我們定義了長(zhǎng)度為5的整型數(shù)組,操作系統(tǒng)就會(huì)為其分配連續(xù)的五個(gè)內(nèi)存地址。

這些地址用來(lái)存放數(shù)據(jù),每一個(gè)地址所占的字節(jié)是數(shù)組的數(shù)據(jù)類型所決定的。如int類型的每一個(gè)地址占據(jù)著4個(gè)字節(jié),double類型的8個(gè)。

因?yàn)槊總€(gè)整形大小為四個(gè)字節(jié),所以如圖每個(gè)地址間隔為4。

講完了一維數(shù)組的知識(shí)點(diǎn),讓我們簡(jiǎn)單了解一下二維數(shù)組

二維數(shù)組的創(chuàng)建與初始化

1.二維數(shù)組的創(chuàng)建

第一個(gè)括號(hào)指定行,第二個(gè)括號(hào)指定列

可以只對(duì)部分元素賦值,未賦值的元素自動(dòng)取零值。例如:

intarr[3][4]={1,2,3,4,5}

2.二維數(shù)組的初始化

第一行:123第二行:45

二維數(shù)組的列不能省略行可以在括號(hào)內(nèi)大括號(hào)分割明確時(shí)省略

二維數(shù)組的存儲(chǔ)

二維數(shù)組在內(nèi)存中的存儲(chǔ)

如果定義一個(gè)這樣的二維數(shù)組inta[3][4]={undefined{1,3,5,7},{9,11,13,15},{17,19,21,23}};則其在內(nèi)存中的表示可能下面這樣的。

由上圖可以看出,在內(nèi)存中二維數(shù)組是按照行主序進(jìn)行存儲(chǔ)的,從內(nèi)存的角度上看,二維數(shù)組本質(zhì)就是一個(gè)一維數(shù)組。如果把二維數(shù)組的每一行看成一個(gè)整體,即看成一個(gè)數(shù)組中的一個(gè)元素,那么整個(gè)二維數(shù)組就是一個(gè)一維數(shù)組。而二維數(shù)組的名字代表二維數(shù)組第0行的首地址(注意它是代表一行元素的首地址,而不是第0行第0列元素的首地址,雖然是相等的,但不能這么理解,所以在沒(méi)有強(qiáng)制轉(zhuǎn)換的情況下,二維數(shù)據(jù)要么通過(guò)行指針進(jìn)行參數(shù)傳遞,要么通過(guò)二維指針進(jìn)行參數(shù)傳遞)。

數(shù)組的越界

這里講的數(shù)組長(zhǎng)度存在一個(gè)界,而一旦超過(guò)了這個(gè)大小,就會(huì)發(fā)生一些未知的錯(cuò)誤,也就是所謂的越界

這里用一個(gè)例子來(lái)說(shuō)明下越界后數(shù)組內(nèi)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論