❶ c語言中數組長度不能用變數定義嗎
1、C語言中不支持。
C++中支持變長數組(你可以自行度娘變長數組和alloca函數),但是因為其實在棧上分配,不被推薦使用。做為解決方案,你可以使用C式的malloc函數或者C++式的new函數來在堆上動態分配內存,這樣長度是完全可以自定的。
2、C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
3、、在數組一章中,曾介紹過數組的長度是預先定義好的, 在整個程序中固定不變。C語言中不允許動態數組類型。例如: int n;scanf("%d",&n);int a[n]; 用變數表示長度,想對數組的大小作動態說明, 這是錯誤的。但是在實際的編程中,往往會發生這種情況, 即所需的內存空間取決於實際輸入的數據,而無法預先確定。對於這種問題, 用數組的辦法很難解決。
4、為了解決上述問題,C語言提供了一些內存管理函數,這些內存管理函數可以按需要動態地分配內存空間, 也可把不再使用的空間回收待用,為有效地利用內存資源提供了手段。 其它文獻中所提到的"動態數組",指的就是利用內存的申請和釋放函數,在程序的運行過程中,根據實際需要指定數組的大小.其本質是一個指向數組的指針變數.常用的內存管理函數有以下三個:分配內存空間函數malloc;分配內存空間函數 calloc;釋放內存空間函數free。
❷ C語言 如何把一個變數值賦給一個數組。
呵呵.你可以使用一個函數名字叫sprintf
下面是我給你寫的詳細代碼你可以參考下
#include
<stdio.h>
int
main()
{
int
a=200;
char
im[]={"hello"};
sprintf(im,"%d",a);
//第一個參數是接受復制的char變數中間是格式化如果換成%c就是按照字元賦值.最後是賦值變數
printf("%s\n",im);
}
❸ 在C++中如何以變數建數組(求一些巧方法)
數組是做為靜態變數出現的,其大小不允許進行動態定義是很正常的。如果需要動態定義數組的長度的話,就必須使用指針(數組的變數名就是一個指向數組空間的指針常量),利用new運算符動態的定義「數組」空間的大小。
其示銷梁例如下:
int n;
cin >> n;
int *a = new int[n];
int i;
for (i = 0 ; i < n ; i++)
{
cin >> a[i];
}
必須要說的是樓上的方法只適用於GCC體系的編譯器而不適合VC,而且,閣下必須保證你要用到的數組z只在那個括弧(即作用域)中有效,虧凳運出了那個括弧,指針將立刻失去目標,數據就粗答丟失了。
❹ C語言 如何定義數組形式的變數
數組在C語言里很常見的
如:
int number[10];
int number[10][10];
定義加初始化如:
int number[10]={x,...,x};
int number[10][10]={{x,...,x},{x,...x},...,{x,...,x}};
x為數據[10]內為數組長度,一維數組在定義時初始化時可省略數組長度
引用時直接使用number[n]即可
❺ c語言如何定義數組
c語言定義數組的方法是:C語言中,同變數一樣;數組也必須先定義後使用。一維數組的定義形式。
1、類型標識符,數組名[常量表達式];例如int a[10];其中a為地址常量。
2、如變數的定義一樣,inta;double a;floata等;數組的定義只是把後面的變數名改為數組名而已。
3、int a[10]就是定義了一個數組名為a的數組;此數組有10個元素。其中各元素從a[0]到a[9];並沒有a[10]元素。
❻ c語言中可不可以用變數定義數組的個數;
c語言中不可以用變數定義數組的個數。
可以使用mallo函數
mallo函數返回的實際是一個無類型指針,必須在其前面加上指針類型強制轉換才可以使用;
指針自身=(指針類型*)malloc(sizeof(指針類型)*數據數量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(6)以變數設定數組c語言擴展閱讀
mallo函數使用注意事項
調用malloc函數時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內存塊。然後,將該內存塊一分為二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的位元組)。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊(如果有的話)返回到連接表上。
調用free函數時,它將用戶釋放的內存塊連接到空閑鏈上。到最後,空閑鏈會被切成很多的小內存片段,如果這時用戶申請一個大的內存片段,那麼空閑鏈上可能沒有可以滿足用戶要求的片段了。
❼ c語言中可不可以用變數定義數組的個數
數組不可以,但是有變通的方法
intn;
scanf("%d",&n);
int*s;
s=(int*)malloc(sizeof(int)*n);
//相當用定義了一個長度為n的int數組,調用和數組一樣,s[0],s[1].....
❽ C語言怎麼用變數定義來數組元素個數
定義時直接用變數亂孫不行,但可以先定義一個逗唯希望數組類型的指針,使用的時候動態申請變數所表示的大小,並賦值給前定義指針,申請成功後就可山陪培以像數組一樣使用了(指針名就是數組名)
int
*myarr;
int
size;
size
=
10;
myarr
=
(int
*)malloc(size
*
sizeof(int));
myarr[0]
=
123;
myarr[size-1]
=
999;
❾ C語言 如何把一個變數值賦給一個數組
這個"如何"其實沒有標准答案,因為int變數和該數組沒啥關系,你想知道如何必須首先定義放的規則