一維陣列和二維陣列的使用

2021-08-04 05:51:05 字數 3408 閱讀 5798

1. 一維陣列的建立與初始化

陣列的建立:

float arr[5];//5個浮點型的陣列

int arr[120];//120個整型的陣列

char arr[20];//20個字元型的陣列

1、其中的是解引用操作符,它的運算元有兩個:乙個陣列名+乙個索引值。陣列的建立一定要包括型別名,如上面**的:float、int、char

2、內的數字是索引,從零開始計數。如「int arr[5]」arr[0]是首元素,arr[4]是第5個元素,也就是最後乙個元素。

3、內只能放入常量,可以是數字、字元型常量、const修飾的常量。

4、內的數字必須大於零、數字只能是整型

5、陣列名的命名只能由下劃線、數字、字母組成,必須以下劃線或字母開頭。還要注意不能是關鍵字。

陣列的初始化:

/*int arr[4] =   錯誤的初始化,元素超過分配記憶體大小*/

int arr[4] = ;//arr中放置了4個元素

int arr[4] = ;//arr中放置了4個元素,其中arr[3]自動初始化為:0

int arr = ;//arr自動初始化為4個整型空間的陣列,分別賦值為:2,3,4,5

char arr[4] = ;//arr初始化為字元型陣列

char arr = "abc";//arr中儲存了4個元素分別為'a','b','c','\0'('\0')是字串結束標誌

#include int arr[10] = ;//利用迴圈初始化陣列

int i = 0;

int main()

} return 0;

}//陣列還可以指定元素下標進行特定的賦值

int arr[6] = ;//arr[4] = 5

2. 一維陣列的使用1、陣列的呼叫不能夠直接將陣列中的元素全部輸出,應該呼叫迴圈輸出。

#include int i = 0;

int arr[3] = ;

int main()

return 0;

}

2、其中陣列的大小可以利用函式sizeof()求得,如:

int arr[10];

int size = sizeof(arr)/sizeof(arr[0]);

//sizeof(arr)求的是整個陣列的位元組大小(10*4 = 40 byte),sizeof(arr[0])求的是陣列首元素的位元組大小(4 byte),計算的size = 10

在函式進行陣列傳參的時候,size的大小只能在main()中求解得到,函式中進行求解是不行的。因為傳參的時候傳遞的只是陣列的首元素的位址,用函式sizeof()求解時呼叫的只是首元素位址,得到的不是整個元素的大小。

3. 一維陣列的儲存

陣列在記憶體中是連續儲存的,高索引號儲存在高位址中,如:int arr[4],若arr[0]位址為0x00b6802c,則arr[4]的位址為0x00b6803c,其中跨過了4*4 = 16 byte。

4. 一維陣列的指標訪問

用指標輸出函式:

語句(int *p = arr;)中p得到的是arr首元素的位址,在圖中可以看到。

1.二維陣列的建立與初始化

二維陣列的建立與初始化和一維陣列的建立與初始化有很多相似的地方,同樣的要有型別名,陣列名,解引用操作符。

#include int arr[3][4]; //建立乙個3行4列的二維陣列

int arr=,,}; //建立了乙個3行3列的二維陣列,等同於arr[3][3]

//arr中包含的元素分別是:3,4,0  5,6,0  3,4,5

int arr[2]=,,}; //建立了乙個3行2列的二維陣列,等同於arr[3][2]

//利用for迴圈建立二維陣列

//對arr[4][4]賦值為1~16

2.二維陣列的儲存

二維陣列的儲存可以看成幾個一維陣列的連續存放,見下圖:

我們一般的想法是把二維陣列看成是乙個幾行幾列的矩陣,這種構思適合我們思考的時候使用,實際上就應該是連續存放。我們可以將第乙個中的數字看成是第二個的個數,而第二個可以當成一維陣列看待。如arr[2][3]就可以看成是兩個三元素的一維陣列連續存放。

3.二維陣列的使用和指標訪問

二維陣列的整體使用也是要呼叫for迴圈來使用,這點跟一維陣列是一樣的

指標訪問也是跟指標訪問相似

1、arr(單只有乙個陣列名的時候)表示的是首元素的位址,即&arr[0]。所以當我們指arr[4]的時候,其實等價於*(arr+4),它的意思是:通過位址找到記憶體arr[0]所在,然後移動4個位元組大小,取出對應的值。

2、當我們進行函式的定義或者宣告的時候,如果函式需要呼叫陣列,那麼定義陣列時候使用的 int arr 實際上等價於 int * arr,int arr 只是用來明顯的讓使用者知道這裡呼叫的是陣列。

3、陣列名 arr 代表整個陣列只有兩種情況:sizeof(arr) 和 &arr 這兩種情況之外的陣列名表示首元素arr[0]的位址

#include int arr[3] = ;

int main()

一維陣列和二維陣列

一維陣列和二維陣列 一維陣列 在程式中可以使用下標變數,即說明這些變數的整體為陣列,陣列的每個變數的資料型別是相同的。當陣列中每個元素都只帶有乙個下標時,稱這樣的陣列為一維陣列。例 int arr 4 這時,我們分析一下 arr arr 1 arr 2 的資料型別 可以看出arr指的是陣列首元素ar...

陣列(一維陣列 二維陣列)

陣列概述 c 陣列從零開始建立索引,即陣列索引從零開始。c 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。這些其實和泛型有些類似,陣列的操作沒有泛型方便,但是效能卻不是泛型所能比擬的 宣告陣列時,方括號 必須跟在型別後面,而不是識別符號後面。在c 中,將方括號放在...

一維陣列和二維陣列的定義和使用

什麼是陣列 變數的組合,是一種批量定義變數的方式 定義 型別 陣列名 數量 int arr 5 int num1,num2,num3,num4,num5 使用 陣列名 下標 下標 從0開始,範圍 0 數量 1 遍歷 與for迴圈配合使用 for int i 0 i 5 i 初始化 型別 陣列名 數量...