當前位置:首頁 » 編程語言 » 如何用c語言設計可變數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何用c語言設計可變數組

發布時間: 2023-07-16 17:50:41

A. c語言中長度可變的數組

如果一個數組具有動態存儲周期(也就是說,如果在語句塊內定義數組,並且沒有 static 修飾符),那麼 C99 也允許把非常量表達式作為元素數量來定義該數組。這樣的數組被稱為長度可變數組(variable-length array)。

而且,長度可變數組的名稱必須是普通的標識符。長度可變數組不能作為結構或聯合的成員。在下面的示例中,只有 vla 數組的定義是合法的:
void func( int n ){int vla[2*n]; // 合法:存儲周期為動態的static int e[n]; // 非法:長度可變數組不可有靜態存儲周期
struct S { int f[n]; }; // 非法:f不是一個普通標識符/* ... */}

B. 如何做出一個C++可變長數組,請各位幫忙

查看vector源碼,照抄並簡化一下!抄一下MFC的CArray也不錯!只要一個指針和一個指示大小的整型就可以了,其他都是錦上添花而已
C++怎麼又變成C了。
這么好像很復雜,其實很簡單的。
1)需要一個T類型的指針,動態分配內存,需要一個整數記錄數組大小
2)一個預設構造函數
vector();// 無成員,或者任意常量個成員
和一個單參構造函數
vector(int n); //n 個成員
3)添加成員,需要動態改變分配的內存大小。
改變成員數量的函數:
void resize( int n);

添加成員的函數:
void push_back(const T&t);
4)查找指定成員,逐一查找;const int find(const T& t);
查找固定位置的成員----實現 constr T& operator[](int n)const;
5)索引方式訪問 實現
下標運算符[] 重載,即
constr T& operator[](int n)const;和
T& operator[](int n);
6)同類型對象賦值,實現
復制構造函數
vector(vector &v);
和 賦值運算符重載
vector operator=(const vector &v
);
7)獲取數組當前長度
int size()const ;
不是很復雜呀!

C. C語言怎樣定義變長數組

」變長數組「確實是有的,是在C99標准才出現的。題主的寫法沒有錯。變長指的就是可以用變數指定數組大小,而不是說數組大小可以在runtime改變。(」變長「這個這個翻譯很怪啊.....)
寫全的話應該是
int x = 2; //x定義並賦值,當然不一定是2
char array[x];測試了一下,這樣的代碼在VC6.0下會報錯,因為對C99新標准沒有很好地實現。VS2005也不行。VS2013可以正確編譯。gcc
3.2.2也可以正確編譯。