C語言 陣列

2021-07-27 16:06:11 字數 3357 閱讀 2134

陣列,在任何一種程式語言中都是很重要的一種資料型別,在任何的開發過程中,在都是很常用的到。c語言中的陣列是儲存乙個固定大小的相同型別元素的順序集合。

陣列的宣告不是宣告乙個變數,而是宣告乙個陣列變數,來表示乙個個單獨的變數。陣列的宣告,其實是告訴編譯器去開闢空間,用來儲存陣列元素,也就是乙個乙個的變數。

那麼,先來看看陣列的宣告:乙個陣列的宣告,一般要有3個部分:1、陣列型別;2、陣列名稱;3、陣列長度。

intarray[10];

下面,我們來介紹下這個陣列。上面宣告的陣列,陣列型別是int型別,陣列名稱是array,陣列長度是10。

這裡需要說明一下,陣列型別指的是陣列中元素的型別,這裡就映照了開始的時候我們說的,陣列是相同型別元素的順序集合。

宣告了陣列以後,怎麼給陣列賦初始值。那就是陣列的初始化:

intarray[10] = ;

這樣就給array陣列初始化賦值了,{}內的元素個數不能大於陣列長度。這個陣列是乙個int型別的陣列,有10個元素,分別是:1,2,3,4,5,6,7,8,9,0。順序不能錯,因為我們前面說了陣列是乙個順序集合。

如果省略掉陣列長度,那麼陣列的長度為初始化時陣列中元素的個數。如:

intarray = ;

這個陣列的長度就是7。

說完了陣列的宣告和初始化,下面再來說說,數值的使用,也就是訪問陣列元素。這裡才是真正體現陣列優勢的地方。

陣列的訪問,可以通過陣列名和索引來進行。這裡來解釋下陣列索引。所謂陣列索引就是陣列中各個元素對應的數字。在陣列這個資料型別中,第乙個陣列元素的索引為0,往後逐個+1。所以,想要訪問上面初始化的陣列的第二個元素,只要使用 array[1] 就行了。這裡需要注意一點,中的索引不能大於陣列長度-1不然會丟擲陣列越界的錯誤。

說到這裡,還是沒有看到陣列的優勢在哪。那麼接著往下來。陣列元素的訪問時可以使用索引進行訪問的,而且陣列的索引還是從0開始遞增的。這樣的結構讓我不禁想到了for迴圈了。對於乙個for迴圈來說,陣列這個東西簡直太好用了。在迴圈中,使用i作為陣列的索引,可以很輕易的訪問陣列中的每乙個元素。當然,陣列的好處還不止這一點。方便了變數的讀寫也是乙個很重要的好處。

下面我們來寫乙個完整的陣列證明,初始化,訪問的**片段:

intmain(

intargc, 

const

char

* argv)

for(

intj = 0; j < 10; j++)

return0;

} 執行結果:

array[0] = 100

array[1] = 101

array[2] = 102

array[3] = 103

array[4] = 104

array[5] = 105

array[6] = 106

array[7] = 107

array[8] = 108

array[9] = 109

program ended with exit code: 0

上面對陣列進行了簡單介紹,下面我們在繼續看看陣列還有別的人可供我們學習的地方。

1、二維陣列(多維陣列):乙個二維本質上是乙個一維陣列的列表。

變數,一維陣列,二維陣列,三維陣列,我們理解起來可以用點,線,面,體來幫助我們理解,乙個變數對應點,乙個一維陣列是變數的順序集合,線是點的順序集合,所以一維陣列對應線,二維陣列是一維陣列的列表,面也是線的順序列表。同理推導到三維陣列和體。這樣理解起來,多維陣列也就很簡單了。下面都以二維陣列為例,三維以上的陣列在實際應用中很少見。

對於乙個二維陣列,宣告方式與一維陣列(下面都簡稱為陣列)相同:

intarray[2][3];

這裡出現了兩個,第乙個表示行,第二個表示列。上面的**就是宣告了乙個2行3列的二維陣列,下面我們畫一張圖來分析這個二維陣列,看到圖以後,其實二維陣列就很簡單了。

intarray[2][3] = ,};

還有一種初始化方式:

intarray[2][3] = ;

這兩種方式是相等的效果,但是推薦使用第一種,因為看著清晰,不容易出錯。

二維陣列的訪問和一維陣列相同,也是使用索引,只是在二維陣列中使用的是2個索引,第乙個索引(內的數字)表示元素在第一層{}中的位置,第二個索引表示在第乙個索引所對應的{}內對應的數字。看著有點繞,那麼我看來根據上面初始化的二維陣列解釋一下。

intarray[2][3] = ,};

在這個陣列中,如果我們訪問使用索引陣列訪問 array[1][2] 這個時候第乙個中的1就表示 

,} 這個二維陣列最外層{}中的這個元素,因為前面乙個的索引是0。第二個中的2表示這個陣列中的第三個元素0.所以,array[1][2]對應的就是0.

下面我們也來寫乙個完整的二維陣列的讀寫:

intmain(

intargc, 

const

char

* argv) ,,,,};

//迴圈訪問陣列

for(int

i = 0; i < 5; i++) }

return0;

} 列印結果:

array[0][0] = 1

array[0][1] = 2

array[0][2] = 3

array[1][0] = 4

array[1][1] = 5

array[1][2] = 6

array[2][0] = 7

array[2][1] = 8

array[2][2] = 9

array[3][0] = 10

array[3][1] = 11

array[3][2] = 12

array[4][0] = 13

array[4][1] = 14

array[4][2] = 15

program ended with exit code: 0

c語言陣列

陣列 構造資料型別之一 陣列是具有一定順序關係的若干個變數的集合,組成陣列的各個變數稱為陣列的元素。陣列中各元素的資料型別要求相同,用陣列名和下標確定。陣列可以是一維的,也可以是多維的。在科學計算中,許多重要的應用都是基於陣列的。所謂一維陣列是指只有乙個下標的陣列。它在計算機的記憶體中是連續儲存的。...

C語言陣列

在變數作函式引數時,所進行的值傳送是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生改變後,實參並不變化,兩者的終值是不同的。而當用陣列名作函式引數時,情況則不同。由於實際上形參和實參為同一陣列,因此當形引數組發生變化時,實參陣列也隨之變化。當然這種情況不能理解...

C語言 陣列

陣列 void test1 for int i 0 i 5 i for int i 0 i 5 i 陣列資料倒序存放 void test2 printf 請輸入5個學生的成績 n for int i 4 i 0 i printf 輸出5個學生的成績 n for int i 0 i 5 i 將陣列的長...