c語言怎麼用變數定義來陣列元素個數

2021-08-29 05:17:39 字數 2230 閱讀 9133

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語言定義結構體變數,C語言 定義結構體變數

首先,定義一個結構的一般形式為 struct結構名 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為 型別說明符 成員名 成員名的命名應符合識別符號的書寫規定。例如 struct stu 在這個結構定義中,結構名為stu,該結構由4個成員組成。第一個成員...

c語言中,陣列元素的下標下限為,c語言中陣列元素下標的上下限是什麼?

c語言中,陣列元素的下標下限為0。陣列中的各元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。陣列元素用整個陣列的名字和它自己在陣列中的順序位置來表示。例如,a 0 表示名字為a的陣列中的第乙個元素,a 1 代表陣列a的第二個元素,以此類推。對於vb的陣列,表示陣列元素時應注意...

C語言中FILE定義的陣列有什麼用?怎麼用

用於即將開啟使用的5個檔案,比如 f 0 fopen file0.txt r f 1 fopen file1.txt r f 2 fopen file2.txt r f 3 fopen file3.txt r f 4 fopen file4.txt r 象上述開啟後你就可以分別讀取每個檔案中的內容了...