首先了解一下數組,數組就是一個變量的組
這樣方便管理變量
首先看下變量的聲明:
int aaa[] = {1,2,3,4,5};
int 是這個數組元素的類型,此處是int類型的
aaa[] 此處的aaa是這個數組的名字,一般說,這個數組aaa,在aaa的後邊還有個放擴弧,這個放擴弧裡是數組的個數,這裡沒有特意在聲明的時候說出來這個數組有幾個數字,但是這兒我們直接給這個數組賦值了,編譯器會自動按賦值的個數來給放擴弧內加上它的個數,如果我們不直接給他們賦值的話,則聲明如下:
int aaa[5];
就是這樣聲明的,這樣的聲明就告訴操作系統,我現在需要5個int類型變量的內存空間,5個內存空間的集合叫做aaa,則操作系統就給aaa這個數組預留出5個int值的內存空間,上邊的聲明方式是直接告訴內存我要存這些int類型的值,我不告訴你我要多少個,我只是告訴操作系統,我的aaa裡存放這些int類型的東西,所有這兩種聲明模式都是樣的。
不管每種聲明,數組遵循一個規律,就是數組的下標,不管怎麼聲明,數組的下標是一定存在的例如:
aaa[] = {1,1,2,4,5,6}
它的下標如下分布:
數組aaa的第一個值是1,下標為0 第二個值是1,下標為1,第三個值是2則下標為2,第6個值是5它的下標是5
也就是說從數組的第一個元素開始對應下標為0開始依次增長!
下邊用例子看看這兩種方式的數組聲明:
[root@CWG hc]# cat sz.c
#include <stdio.h>
main()
{
int aaa[] = {1,2,3,4,5}; //聲明一個元素為int類型的數組內容是1,2,3,4,5
printf("%d = %d\n", aaa[2], aaa[3]); //打印數組aaa的下標為2的值和下標為3的值,數組取值就是通過下標來獲取獲取下標為n則是aaa[n]
int bbb[9]; //聲明一個包含9個int類型數值的數組bbb
int i = 0; //初始化一個循環變量
while (i != 9) {
bbb[i] = i; //循環體,循環給數組bbb賦值一共9個元素,下標是從1~8
i++;
}
for (i = 0; i < 9; ++i)
printf("%d\n", bbb[i]); //循環打印出數組bbb的值
}
執行情況如下:
[root@CWG hc]# ./sz
3 = 4 //打印出了數組aaa的下標為2的值和aaa數組下標為3的值
0 //for循環依次循環打印出了數組bbb的所有有while循環賦過值的結果
1
2
3
4
5
6
7
8
相關閱讀:
C語言變長數組之剖析 http://www.linuxidc.com/Linux/2013-07/86997.htm
C語言需要注意的問題 http://www.linuxidc.com/Linux/2013-05/84301.htm
C語言位域的使用及其注意點 http://www.linuxidc.com/Linux/2013-07/87027.htm