變長數組

來自百度百科


簡介


變長數組(variable-length array),也簡稱VLA。
C語言中,直到C99標準出現之前,聲明數組時在方括號內只能使用整數常量表達式。而C99做了很大改進,允許數組的[ ]中的值是整形變量或是整形表達式。這就解釋了下面的情況:

int n;
scanf ("%d", &n);
int array[n];

雖然n確實是需要運行時動態確定的變量,但是在C99中,以這種變量作爲數組大小的形式已經是允許的了。這樣的數組就被稱之爲“變長數組”。
注意:變長數組是指用整形變量或表達式聲明或定義的數組,而不是說數組的長度會隨時變化,變長數組在其生存期內的長度同樣是固定的。


使用引例


如下面的例子:

........
fun (10);
.........
void fun(int n)
{
int vla[n];
n += 10;
printf ("vla takes %d bytes/n", sizeof vla);
}

執行的結果是40。雖然n的值在聲明瞭數組vla之後發生了變化,但是vla不會因此而改變大小,因爲變長數組一旦被聲明,其大小就會保持不變直到生命期結束。

發佈了21 篇原創文章 · 獲贊 13 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章