1. 程式人生 > >C++入門——定義陣列的注意事項

C++入門——定義陣列的注意事項

今天看了陣列,記錄一個很小的點。

int n=100;

int a[n];

會報錯,因為陣列定義是具有編譯確定意義的操作,它分配固定大小的空間,因此元素個數必須是由編譯時就能夠確定的常量表達式。雖然根據上下文已經知道n的值,但編譯動作會因為變數性質而完全不同。變數性質是具有空間佔用的可訪問實體,編譯每次碰到一個變數名就對應一個訪問空間的操作。因此,int a[n]實際上要在執行時,才能讀取變數n的值,才能確定其空間大小。因此會報錯。

可作出如下修改:

const int n=100;

int a[n];

這是正確的,因為const修飾的資料型別是指常型別,常型別的變數或者物件的值是不能被更新的。

const在提高效率,節省儲存空間方面有很好的效果。

還有一點,在定義字串陣列時,要注意給串的結束符分配空間。

例如:

char chs1[5]={'h','e','l','l','o'};

char chs2[6]={"hello"};