首先來看一段代碼:
int n;
scanf("%d",&n);
int a[n]={2},b[n]={0};
這里創建了兩個int類型的數組a[ ],b[ ],指定數組的長度為n,並對數組的第一個元素的值進行賦值(初始化),然后編譯器報錯:
error: variable-sized object may not be initialized
(變量大小的對象不能初始化)
如果在Dev C++的編譯器里面來實現的話是可以實現的,這樣的寫法是沒有問題的。這里報錯的原因是C語言規定了不能使用variable-sized的數組,問題在於不能用變量聲明數組大小的同時初始化
解決辦法:創建數組的時候不要對其進行初始化就OK
int n;
scanf("%d",&n);
int a[n],int b[n];
a[0]=2;
b[0]=0;
這樣寫編譯器就不會報錯。