C語言數組
C語言編程提供數組的數據結構,其可存儲相同類型的元素在一個固定大小的連續集合。數組用於存儲數據的集合,但它往往是將數組作為相同類型的變量的集合。
相反,聲明單個變量,如number0, number1, ..., 和 number99, 聲明一個數組變量,如數字並使用 numbers[0], numbers[1], 和 ..., numbers[99] 表示單個變量。在數組的特定元素由索引進行訪問。
所有數組由連續的內存位置。最低的地址對應於第一元素和最高地址為最後一個元素。
聲明數組
在C語言中聲明數組,程序員指定元素的類型以及數組所需元件的數目,如下:
type arrayName [ arraySize ];
這就是所謂的一維數組。arraySize必須是一個非零整數常數越大並且類型是任何有效的C語言數據類型。例如,要聲明一個10個元素的數組稱為double類型的balance數組,使用如下語句:
double balance[10];
現在balance是一個變量數組,其足以容納高達10雙精度數字。
初始化數組
可以通過一個是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};
將創建完全相同的數組,在前麵的例子中那樣。下麵是一個例子,分配陣列的單個元素:
balance[4] = 50.0;
以上語句數組中的元素分配數第5個元素的值為50.0。所有數組使用0作為其第一元素,也被稱為基本索引;最後一個索引的索引是該數組的總大小減去1以下是上麵討論的相同的數組的圖形表示:
訪問數組元素
一個元素由索引數組名訪問。這是由放置在方括號內的元素的索引數組的名稱後進行。例如:
double salary = balance[9];
以上語句將10個元素的數組賦值給變量salary。以下是其中將使用所有上述三個概念即一個例子。聲明,分配和訪問數組:
#include <stdio.h> int main () { int n[ 10 ]; /* n is an array of 10 integers */ int i,j; /* initialize elements of array n to 0 */ for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; /* set element at location i to i + 100 */ } /* output each array element's value */ for (j = 0; j < 10; j++ ) { printf("Element[%d] = %d ", j, n[j] ); } return 0; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
C語言數組詳述
在C語言中數組是很重要,應該需要大量的更多的細節介紹。有下列關係到數組幾個重要的概念C程序員應該是清楚:
概念 | 描述 |
---|---|
多維數組 | C語言支持多維數組。多維數組的最簡單的形式是二維數組 |
函數傳遞數組 | 可以通過指定數組的名稱冇有索引傳遞給函數的指針數組 |
函數返回數組 | C語言允許函數返回數組 |
指針數組 | 可以簡單的通過指定數組名,冇有任何指定索引而產生一個指向數組的第一個元素 |