陣列宣告跟變數宣告都必須放在main()函式,接著我來示範靜態陣列的宣告方法!
資料型態 陣列名[元素數]; // 靜態陣列宣告格式
當然也可以宣告bool,char,float,double這些類型的陣列,
然後這是靜態陣列所以一開始便要宣告裡面有幾個元素。
靜態陣列的內容也像變數一樣,必須有人設值,不然裡面的元素內容可是未知的。
int iarr[2]={0,1}; // 在整數靜態陣列iarr中設定兩個元素值,第一個元素就是0,第二個就是1
除了像這樣一個個設定元素外,也可以一次把所有元素設定為同樣的值。
char charr[10]={'\0'}; // 10個元素 的值都會變成 空白字元。
float fltarr[20]={0.0}; // 20個元素 的值都會變成 0
bool booarr[15]={false}; // 15個元素 的值都會變成 false
接著還來寫寫看~讓程式跑起來!
int main()
{
const int num=10; // 宣告一個常數整數num
int iarr[num]={0}; //宣告一個靜態陣列存放整數元素,所有元素的值都被設定成0
for(int i=0;i<num;i++)
{
cout<< i<< "號等於"<< iarr[i];
cout<< endl;
}
}
執行結果:
0號等於0
1號等於0
2號等於0
3號等於0
4號等於0
5號等於0
6號等於0
7號等於0
8號等於0
9號等於0
如果要取出第一個元素的值可不是iarr[1],而是iarr[0]。
接著如果我把for()中的i < num 改成i <= num會發生什麼事情呢?
更改後的執行結果:
0號等於0
1號等於0
2號等於0
3號等於0
4號等於0
5號等於0
6號等於0
7號等於0
8號等於0
9號等於0
10號等於4196272
事實上我們iarr明明是靜態陣列,已經事前宣告有10個元素在此陣列。
也同時設值給這10個元素為0,iarr[10]取出的是不存在的第11個元素,當然值也就沒設成為0囉~
陣列宣告補充:
還有上面有更新過一下,
如果打int iarr[10]={5};,會變成只有第一個初值是5,其他都會是零歐!!!!!