一維陣列的定義與引用(初學者)
陣列:具有相同型別的資料組成的序列,且該序列是有序集合。
陣列中的每一個數據稱為資料元素(下標變數)。
陣列元素由其所在的位置序號(資料元素的下標)來區分。
陣列名與下標的意義:可以用統一的方式來處理陣列中的所有元素,從而方便的實現處理一批具有相同性質資料的問題。
注意:陣列元素的有序不是指元素大小順序。
1、一維陣列的定義
在C語言中使用陣列必須先進行定義。
一維陣列的定義方式為:型別說明符 陣列名[常量表達];
例:int a[10];
它表示定義了一個整型陣列,陣列名為a,此陣列有十個元素,10個元素都是整型變數。
注意:(1)型別說明符是任意一種基本資料型別或構造資料型別。對於同一個陣列,其所有元素的資料型別都是相同的。
(2)陣列名是使用者定義的陣列識別符號,書寫規則應符合識別符號的書寫規定。
(3)方括號中的常量表達式表示資料元素的個數,也稱為陣列的長度。
(4)允許在同一個資料說明中,說明多個數組和多個變數。
例:int a,b,c,d,k1[10],k2[2];
(5)a[7]表示a陣列有7個元素,注意下標是從0開始的,這7個元素是a[0],a[1],a[2],a[3],a[4],a[5],a[6]。不存在陣列元素a[7]。
(6)C語言不允許對陣列的大小做動態定義,即陣列的大小不依賴於程式執行過程中變數的值。
例:int n;
scanf("%d",&n); /*在程式中臨時輸入陣列的大小*/
int a[n];
為非法。
常見錯誤:(1)float a[0];/*陣列大小為0沒有意義*/
(2)int b(2)(3);/*不能使用圓括號*/
(3)int k,a[k];/*不能用變數說明陣列大小*/
重點補充:一維陣列在記憶體中的存放:從低地址向高地址儲存。
2、一維陣列元素的引用
陣列元素是組成陣列的基本單元。陣列元素也是一種變數,其表示方法為陣列名後跟一個下標。下標表示了元素在陣列中的順序號。
陣列元素的一般形式為:(引用時陣列的一般形式)
陣列名[下標]
下標可以是整型常量或整形表示式。
例:a[0]=a[5]+a[7]-a[2*3]
a[i+j]
a[i++]
都是合法的陣列元素。
注意:(1)陣列元素通常也稱為下標變數。必須先定義陣列才能使用下標變數。在C語言中只能逐個的使用下標變數,而不能一次引用整個陣列。
例:輸出有十個元素的陣列必須使用迴圈語句逐個輸出各下標變數。
#include<stdio.h> void main() { int i,a[10]; for(i=0;i<10;i++) { printf("%d\n",a[i]); } }
而不能用一個語句輸出整個陣列。
例:printf("%d",a);為非法
(2)定義陣列時用到的“陣列名[表示式常量]”和引用陣列元素時用到的“陣列名[下標]”是有區別的。
例:
int a[10];/*定義陣列長度為10*/ t=a[6]/*引用a陣列中序號為6的元素,此時6不代表陣列長度*/
例:
#include<stdio.h> void main() { int a[10],i; for(i=0;i<10;i++) { a[i]=i; } for(i=9;i>=0;i--) { printf("%d",a[i]); } }