1. 程式人生 > >C陣列學習記錄

C陣列學習記錄

C語言中的陣列

概念

陣列資料結構可以儲存一個固定大小相同型別元素的順序集合。陣列是用來儲存一系列資料,但它往往被認為是一系列相同型別的變數。
所有的陣列都是由連續的記憶體位置組成。最低的地址對應第一個元素,最高的地址對應最後一個元素。

宣告二維陣列

type arrayName [ x ][ y ];

其中,type 可以是任意有效的 C 資料型別,arrayName 是一個有效的 C 識別符號。一個二維陣列可以被認為是一個帶有 x 行和 y 列的表格。
陣列中的每個元素是使用形式為 a[ i , j ] 的元素名稱來標識的,其中 a 是陣列名稱,i 和 j 是唯一標識 a 中每個元素的下標。所有的陣列都是以 0 作為它們第一個元素的索引,也被稱為基索引,陣列的最後一個索引是陣列的總大小減去 1。

初始化陣列

在 C 中可以逐個初始化陣列,也可以使用一個初始化語句,如下所示:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

大括號 { } 之間的值的數目不能大於我們在陣列宣告時在方括號 [ ] 中指定的元素數目。如果省略掉了陣列的大小,陣列的大小則為初始化時元素的個數:

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

對於二維陣列,可以通過在括號內為每行指定值來進行初始化。下面是一個帶有 3 行 4 列的陣列:

int a[3][4] = {  
 {0, 1, 2, 3} ,   /*  初始化索引號為 0 的行 */
{4, 5, 6, 7} , /* 初始化索引號為 1 的行 */ {8, 9, 10, 11} /* 初始化索引號為 2 的行 */ };

內部巢狀的括號是可選的,下面的初始化與上面是等同的:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};