--- tags: 資料結構筆記 --- # 資料結構:Array ## 什麼是Array? Array(陣列)是一種能夠儲存相同資料型別的多個元素的資料結構。每個元素都有一個獨特的索引,可以用來訪問和操作這些元素。 ## 宣告和初始化Array 在C語言中,我們可以這樣宣告和初始化一個Array: ```C= int numbers[5]; // 宣告一個包含5個整數的Array ``` 這將創建一個包含5個整數的Array,索引範圍從0到4。 我們也可以在宣告的同時初始化Array: ```C= int numbers[5] = {1, 2, 3, 4, 5}; // 初始化一個包含1到5的整數Array ``` ## 訪問Array元素 要訪問Array中的特定元素,我們使用它的索引: ```C= int first_element = numbers[0]; // 存取第一個元素 int second_element = numbers[1]; // 存取第二個元素 ``` ## 修改Array元素的值 我們可以通過索引來修改Array中的元素: ```C= numbers[2] = 10; // 將第三個元素的值設為10 ``` ## 遍歷Array 遍歷(Traversal)是指**按照一定的順序依次訪問一個資料結構中的所有元素**。在程式設計中,通常使用迴圈來實現遍歷,以便能夠依次處理每個元素。 舉例來說,如果你有一個包含多個數字的Array,你可能會想要依次檢查每個數字,以進行特定的運算或者輸出。 我們可以使用迴圈來遍歷Array中的所有元素: ```C= for(int i = 0; i < 5; i++) { printf("%d ", numbers[i]); } ``` 這個程式片段中的 **for** 迴圈用於遍歷 **numbers** 這個Array,依次取出每個元素並打印它們出來。所以,遍歷就是按照一定的順序處理Array中的每個元素。 這個迴圈會依次打印出Array中的所有元素。 ## 注意事項 - Array的索引從0開始,所以一個包含5個元素的Array的索引範圍是0到4。 - 在使用Array之前,請確保它已被初始化,否則它的值將是不確定的。 --- # 一維陣列 ## 什麼是一維陣列? 一維陣列是一種能夠儲存相同資料型別的多個元素的資料結構。不同於一個變數只能儲存一個值,一維陣列可以儲存多個相同類型的值。 ## 宣告和初始化一維陣列 在C語言中,我們可以宣告和初始化一維陣列如下: ```C= int numbers[5]; // 宣告一個包含5個整數的一維陣列 ``` 這將創建一個包含5個整數的一維陣列,索引範圍從0到4。我們也可以在宣告的同時初始化一維陣列: ```C= int numbers[5] = {1, 2, 3, 4, 5}; // 初始化一個包含1到5的整數一維陣列 ``` ## 存取一維陣列元素 要存取一維陣列中的特定元素,你可以使用索引值: ```C= int first_element = numbers[0]; // 存取第一個元素,索引為0 int second_element = numbers[1]; // 存取第二個元素,索引為1 ``` ## 修改一維陣列元素的值 要修改一維陣列中的元素值,你可以使用索引來指定要修改的元素: ```C= numbers[2] = 10; // 將第三個元素的值設為10 ``` --- # 二維陣列 ## 介紹 ### 什麼是二維陣列? 二維陣列是一種資料結構,它可以存儲相同類型的元素,但與一維陣列不同,它們是以行和列的形式組織的。你可以將它想像成一個包含行(column)和列(row)的表格,每個格子中都有一個元素。 ## 宣告和初始化 ### 元素放在MEM中的方式 * Row-major * Column-major  ### 如何宣告一個二維陣列? 在C語言中,我們可以這樣宣告一個二維陣列: ```C= int matrix[3][3]; // 一個3x3的整數二維陣列 ``` 這將創建一個包含3行3列的二維陣列,就像一個3x3的矩陣。 ### 如何初始化二維陣列? 我們可以在宣告的同時初始化二維陣列: ```C= int matrix[2][2] = {{1, 2}, {3, 4}}; // 一個2x2的整數二維陣列,並初始化其值 ``` ## 存取元素 ### 如何存取二維陣列中的元素? 要存取二維陣列中的特定元素,我們需要提供兩個索引值,分別代表行和列: ```C= int element = matrix[1][1]; // 存取第二行第二列的元素,值為4 ``` ## 遍歷二維陣列 ### 如何遍歷二維陣列中的所有元素? 我們可以使用兩個巢狀的迴圈來遍歷二維陣列: ```C= for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } ``` 這個迴圈將會逐行逐列地列印出所有元素。 ## 二維陣列的應用 二維陣列常用於表示矩陣、表格、圖像等多維數據結構。例如,在遊戲開發中,我們可以使用二維陣列來表示遊戲地圖。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.