1樓:吉祥二進位制
c語言中陣列的維數表示陣列中元素的個數,在常規陣列中維數是必須要指明的,如果沒有指明,則必須在初始化列表中給定初始值,編譯器通過初始化列表來確定陣列的維數。
int a = ;
上面的**雖然沒有指明陣列的維數,但是編譯知道陣列a的維數是4(只有4個元素)。
要實現用變數定義陣列的元素個數即維數,可以使用malloc()和free()來進行動態記憶體分配 。下面是一個使用動態記憶體的示例:
#include
#include
#include
#include
int main()
//初始化記憶體
memset(p, 0x00, sizeof(int) * size);
//釋放記憶體
free(p);
return 0;}
2樓:匿名使用者
如樓上所言,用malloc函式即可.
如下:int *arr = new int[a];//a個整形元素事實上,c99標準已經支援動態陣列.你可以直接int arr[a];(其中a是執行時得到的)
vc6裡面不支援c99標準,所以不能這樣用.許多主流編譯器如gcc都已經支援該用法.
3樓:匿名使用者
int array[a];//這表示定義一個整形 a位 的陣列
4樓:匿名使用者
不能定義動態的陣列
陣列array[ ]括號中間必須是常量
可以定義為巨集定義
#define num 5
int array[num];
這種不會報錯
5樓:西電_小哥
這樣是不行的,你可以定義一個相對大一點的空間,比如int arry(100);保證a<100;
6樓:于于祥祥
int *pn=(int *)calloc(n,sizeof(int));
可得到pn[n]這個陣列
7樓:
不是() 是
int array[a];就對了
c語言怎樣用scanf定義陣列長度,再定義陣列各元素?
8樓:
可以使用記憶體分配函式來實現。
#include
#include
int main()
c語言中使用常量定義陣列元素個數為什麼只能用#define?
9樓:匆匆是路認
c語言中陣列的維數表示陣列中元素的個數,在常規陣列中維數是必須要指明的,如果沒有指明,則必須在初始化列表中給定初始值,編譯器通過初始化列表來確定陣列的維數。
int a = ;
上面的**雖然沒有指明陣列的維數,但是編譯知道陣列a的維數是4(只有4個元素)。
要實現用變數定義陣列的元素個數即維數,可以使用malloc()和free()來進行動態記憶體分配 。下面是一個使用動態記憶體的示例:
#include
#include
#include
#include
int main()
//初始化記憶體
memset(p, 0x00, sizeof(int) * size);
//釋放記憶體
free(p);
return 0;}
10樓:匿名使用者
int by_two[size]會在編譯階段初始化,size的值是在執行階段
取到的,編譯階段是沒有取到值,所以錯了。
define size 8是在編譯階段直接替換,int by_two[size]相當於int by_two[8],所以說可以的。
c語言怎樣用scanf定義陣列長度,再定義陣列各元素?
11樓:匿名使用者
c語言中陣列長度必須是常量。如果你想用不定長陣列,可以事先定義一個比較大的陣列,再用一個變數記錄實際用到的陣列元素數,這樣也可以大致不定長的目的。
12樓:匿名使用者
可以使用記憶體分配函式來實現。
#include
#include
int main()
13樓:匿名使用者
可以進行動態分配空間
c語言怎麼巨集定義2維陣列C語言怎麼巨集定義一個2維陣列
如果要強調是二維陣列,這樣也許更合適些 c c code?define m 80 define n 100 define array a,m,n a m n char array 1 例如 define m 80 define n 100 define array a,m,n a m n char ...
c語言如何定義字串陣列C語言如何定義字串陣列
c語言字串陣列中的每一個元素均為指標,即有諸形如 ptr array i 的指標。由於陣列元素均為指標,因此ptr array i 是指第i 1個元素的指標。例 如二維指標陣列的定義為 char ptr array 3 擴充套件資料 字串陣列陣列元素表示方法 陣列元素的一般形式為 陣列名 下標 其中...
用陣列定義的變數和指標定義的變數名長度不同
sizeof x 看上去像函式,實際上 sizeof 不是函式,它是 c c 語言裡的 運算子 這是理解 sizeof 的關鍵。按 sizeof 的規定,操作物件 x 可以是 變數 型別,也可以是 變數名。sizeof 計算結果 得到 這個 變數 或 這種型別 佔用了 多少 個 位元組 的記憶體。例...