複製鏈接
請複製以下鏈接發送給好友

變長數組

鎖定
變長數組(variable-length array),C語言術語,也簡稱VLA。是指用整型變量或表達式聲明或定義的數組,而不是説數組的長度會隨時變化,變長數組在其生存期內的長度同樣是固定的。
中文名
變長數組
外文名
variable-length array
簡    稱
VLA
應用於
C 語言
學    科
計算機

目錄

變長數組簡介

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不會因此而改變大小,因為變長數組一旦被聲明,其大小就會保持不變直到生命期結束。