C 第四章 陣列

2021-09-02 18:30:07 字數 3238 閱讀 3467

二維陣列

陣列是一組相同元素的集合.

陣列的建立方式:

type_t  arr_name  [const_n];

// type_t 是指數組的元素型別

// const 是乙個 常量表示式,用來指定陣列的大小

陣列建立的例項:

// **1

int arr1[10]

;// **2

int count =10;

int arr2[count]

;// **3

char arr3[10]

;float arr4[1]

;double arr5[20]

;

注: 陣列建立,[ ]中要給定乙個常量才可以,不能使用變數.

陣列的初始化是指,在建立陣列的同時給陣列的內容一些合理的初始值(初始化).

int arr1[10]

=;int arr2=

;int arr3[5]

=;char arr4[3]

=;char arr5=

;char arr6=

"abcdefg"

;

陣列在建立的時候如果想要不指定陣列確定的大小就要初始化.

陣列的元素個數根據初始化的內容確定.

對於陣列的使用我們之前的介紹了乙個操作符下標引用操作符,它其實就是陣列訪問操作符.

#include 

int main()

;//陣列的不完全初始化

int size =

sizeof

(arr)

/sizeof

(arr[0]

);//計算陣列元素個數

//對陣列的內容賦值,陣列是使用下標來訪問的,下標從0開始,所以:

int i =0;

//作為下標

for(i =

0;i < size;i++

)//輸出陣列的內容

for(i =

0;i < size;i++

)return0;

}

陣列是使用下標來訪問的,下標是從0開始的.

陣列的大小可以通過計算(sizeof)得到的.

int arr[10]

;int size =

sizeof

(arr)

/sizeof

(arr[0]

);

接下來我們**陣列在記憶體中的儲存:

#include 

int main()

; int i =0;

for(i =

0;i <

sizeof

(arr)

/sizeof

(arr[0]

);++i)

return0;

}

輸出結果如下:

從執行結果中我們可以看到:

二維陣列其實本質上也是一位陣列,不過這個一維陣列中的元素也是一維陣列.

這樣的思維可以擴充套件到多維陣列,如 三維陣列也可以看成乙個一維陣列,不過其中元素是二維陣列罷了.

//二維陣列的建立

int arr[3]

[4];

//這裡的[3][4]是指乙個長度為 3 的一維陣列

//其中每個元素是乙個長度為 4 的一維陣列

char arr[3]

[5];

double arr[2]

[4];

//其他型別定義同理

//二維陣列的初始化

int arr[3]

[4]=

;int arr[3]

[4]=

,};int arr[

4]=,

};

二維陣列的使用也是通過下標的方式:

#include 

int main()

; int i =0;

for(i =

0;i <

3; i++)}

return0;

}

#include 

int main()

}return0;

}

程式輸出結果為:

通過分析結果我們得知,二維陣列在記憶體中也是連續儲存的.

在我們程式編寫過程中,也會將陣列作為引數傳遞給某個函式。

比如:實現乙個氣泡排序函式,將乙個整型陣列排序。

#include 

void

bubble_sort

(int arr)

int main()

;bubble_sort

(arr)

;for

(int i =

0;i <

sizeof

(arr)

/sizeof

(arr[0]

);++i)

return0;

}

我們執行完這段**,結果並不如我們預期一樣,為什麼呢?

那麼**如何進行改進呢?

void

bubble_sort

(int arr[

],int size)

陣列作為函式引數時,不會把整個陣列傳遞進去,實際上只是把陣列首元素位址傳遞進去了,所以即使在函式引數部分寫成陣列的形式,表示的依然是乙個指標如:int arr表示的是int* arr.

若果陣列作為引數傳參,函式內部需要知道陣列元素個數。

應該在函式外部算出元素個數,並且作為引數傳遞給函式,這樣可以通過指標與陣列元素搭配的方法等效替代傳遞陣列。

第四章 陣列

一維陣列的定義 當陣列中每個元素只帶有乙個下標時,我們稱這樣的陣列為一維陣列。陣列的定義格式如下 型別識別符號 陣列名 常量表示式 說明 陣列名的命名規則與變數名的命名規則一致。常量表示式表示陣列元素的個數。可以是常量和符號常量,但不能是變數。例如 int a 10 陣列a定義是合法的 int b ...

第四章 陣列操作

1 scala陣列操作 1.1 定義定長陣列 scala val arr1 new array int 5 arr1 array int array 0,0,0,0,0 列印陣列後,輸出位址 scala println arr1 i 199e4c2b 呼叫陣列物件的tobuffer方法 scala ...

C 第四章習題

1 定義乙個複數類complex,過載運算子 使之能用於複數的加法運算。將運算子函式過載為非成員 非友元的普通函式。程式設計序,求兩個複數之和。2 定義乙個複數類complex,過載運算子 使之能用於複數的加減乘除。運算子過載函式作為complex類的成員函式。程式設計序,分別求兩個複數之和 差 積...