程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++運行時決定數組大小 variable-length array,variablelength

c++運行時決定數組大小 variable-length array,variablelength

編輯:C++入門知識

c++運行時決定數組大小 variable-length array,variablelength


variable-length array是C99添加的一個特性,即數組的長度可以在運行時(run time)決定,而不是在編譯時(compile time)。即,定義數組時不一定要使用 const int, 也可以使用變量、函數返回值等。 例如

1 int main(){
2     int a=5, b=6;
3     int arr1[a];
4     int arr2[ min(a,b) ];
5     int arr3[ rand()%10 ];      
6 
7 }

這些定義數組的方式都是合法的。

 

 

不過,這種聲明方式好像只適用於局部變量,全局變量是不行的。下面的用法會報錯。

int a=100;
int b[a];

int main(){
    return 0;
}

 

允許運行時決定數組大小會帶來很多方便。

不過,在C11標准時,variable-length array變成了一個可選的特性,不要求編譯器必須實現。筆者測試了手頭可用編譯器的默認支持情況。

編譯器 是否支持variable-length array gcc 4.8 支持 clang 3.4 支持 visual studio 2012 不支持 visual studio 2013 不支持

c,c++隱藏的東西太多,確實很麻煩。variable-length array這一特性,如果在跨平台開發時,需要慎重使用。

另外,看很多地方翻譯為 “變長數組”, 其實不是很合適,這和其他語言中的邊長數組還是不同的。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved