『壹』 c語言數組的定義
C語言支持一維數組和多維數組。如果一個數組的所有元素都不是數組,那麼該數組稱為一維數組。
在C語言中使用數組必須先進行定義,一維數組的定義方式為:類型說明符; 數組名 ;[常量表達式]。
其中,類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符,方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。例如:
int a[10]; /* 說明整型數組a,有10個元素 */
float b[10], c[20]; /* 說明實型數組b,有10個元素,實型數組c,有20個元素 */
char ch[20]; /* 說明字元數組ch,有20個元素 */
對於數組類型說明應注意以下幾點:
1、數組的類型實際上是指數組元素的取值類型。對於同一個數組,其所有元素的數據類型都是相同的。
2、數組名的書寫規則應符合標識符的書寫規定。
3、數組名不能與其它變數名相同。例如:
int a;
float a[10];
是錯誤的。
4、方括弧中常量表達式表示數組元素的個數,如a[5]表示數組a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。
5、不能在方括弧中用變數來表示元素的個數,但是可以是符號常數或常量表達式。例如:
#define FD 5
// ...
int a[3+2],b[7+FD];
是合法的。但是下述說明方式是錯誤的。
int n=5;
int a[n];
6、允許在同一個類型說明中,說明多個數組和多個變數。例如:
int a,b,c,d,k1[10],k2[20];
(1)c語言一維靜態數組擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
『貳』 c語言 一維數組如何增加長度
C語言一維數組分靜態一維數組和動態一維數組兩種。
一、靜態一維數組,在定義的時候就已經確定其長度。如
int a[10];
就是定義了一個長度為10個元素的整型數組。
靜態數組不支持長度的增加。如果要增加長度,只能新定義一個更長的數組,並把原始數組的數據復制到新數組中。
二、動態一維數組,本質上是一個一維指針,並在其上分配一段內存,在這段內存上,可以當做數組來使用。
這種情況下,可以通過realloc函數,來實現增加長度。
int *p; //定義指針
p = malloc(10*sizeof(int));//分配10個元素。
p = realloc(p,20*sizeof(int));//重新分配,長度增加到20. 使用該函數,可以保持原本空間內的數據不變,只是可用空間增加。
『叄』 怎麼在C語言中重新定義數組的長度
C語言一維數組分靜態一維數組和動態一維數組兩種。 一、靜態一維數組,在定義的時候就已經確定其長度。如 int a[10];就是定義了一個長度為10個元素的整型數組。 靜態數組不支持長度的增加。如果要增加長度,只能新定義一個更長的數組,
『肆』 C語言一維數組的聲明
靜態數組"[ ]"裡面只能是常量,不能是變數
int a[], 不能這么做,因為聲明靜態數組時必須立刻初始化,也就是 int a[4] 類似。
但是你可以聲明動態數組
#include <malloc.h>
int *a;
a = (int *)malloc(sizeof(int)*m);//m相當於靜態數組中int a[4]中的4,可以是變數
這樣你就可以用
int i;
for(i=0; i<m; ++m)
{
a[i] = 0;
}
將所有成員賦值為0.
『伍』 C語言靜態數組
通俗的說靜態數組就是在定義數組的時候,由操作系統分配的空間,比如
int
a[10];
這就是在定義時由系統給你分配了10個int類型的空間,這個空間是可以初始化的,比如
int
a[10]
=
{1,
2,
3,
4,
5,
6,
7,
8,
9,
10};
那麼在這個定義之後,系統會首先分配10個int類型的存儲空間,然後把大括弧裡面的數字分別的,按順序放到這10個空間里。你所做的只是寫這么一句,而數組賦值的操作就由系統完成了。當然,初始化與否看你的需求,初始化不是強制性操作,想初始化就初始化,不想也沒問題,還是上面的例子繼續:
int
a[10];
這里定義了,但是沒初始化,這沒有任何問題,以後你可以自己往裡面賦值,比如
a[1]
=
8;
a[5]
=
3;
或者
for(int
i
=
0;
i
<
10;
i++)
a[i]
=
i;
等等
對於動態數組,不能被初始化,因為動態數組在定義時只是個指針,比如
int
*a;
這里變數a只是個指向int類型的指針,而不是數組。動態分配有10個int類型元素的數組,如下:
a
=
(int)
malloc(10*sizeof(int));
很明顯,指針a在定義的時候不能被初始化,比如這樣寫就是錯誤的:
int
*a
=
{1,2,3,4,5,6,7,8,9,10};
/*
錯誤!
*/
因為a是只有4個位元組的指針,沒有可用的存儲空間給需要初始化的變數。
所以,靜態數組從語法上來說允許被初始化。作為程序員來說,你可以初始化靜態數組,也可以不初始化,由你決定。
『陸』 如何擴充靜態數組array的長度
C語言一維數組分靜態一維數組和動態一維數組兩種。
一、靜態一維數組,在定義的時候就已經確定其長度。如
int a[10];
就是定義了一個長度為10個元素的整型數組。
靜態數組不支持長度的增加。如果要增加長度,只能新定義一個更長的數組,並把原始數組的數據復制到新數組中。
二、動態一維數組,本質上是一個一維指針,並在其上分配一段內存,在這段內存上,可以當做數組來使用。
這種情況下,可以通過realloc函數,來實現增加長度。
int *p; //定義指針
p = malloc(10*sizeof(int));//分配10個元素。
p = realloc(p,20*sizeof(int));//重新分配,長度增加到20. 使用該函數,可以保持原本空間內的數據不變,只是可用空間增加。
『柒』 C語言中一維數組正確的定義
C語言中定義一維數組如下:
數據類型
數組名[數組長度];
//
不進行初始化的數組
數據類型
數組名[數組長度]
=
{數組元素初始化值};
//
進行初始化的數組
舉例如下:
// 定義一個int型的未進行初始化數組data1
int data1[5];
// 定義一個int型的數組data2,並對數組中各元素進行初始化
int data2[5] = {5, 2, 4, 0, 3};
『捌』 C語言中定義一維數組
您這樣進行定義是錯誤的。
因為在棧上進行數據定義時,必須編譯的時候就能夠確定該數據的確切大小。
int b[]; //必須填值
int a[strlen(b)]={0}; //中括弧內容的值必須是常數。
如果您需要動態大小的數組,那麼應該使用malloc進行動態內存申請,並在使用後用free進行釋放。
『玖』 VC++中的一維數組定義
C語言中定義一維數組如下:
數據類型 數組名[數組長度]; // 不進行初始化的數組
數據類型 數組名[數組長度] = {數組元素初始化值}; // 進行初始化的數組
舉例如下:
// 定義一個int型的未進行初始化數組data1
int data1[5];
// 定義一個int型的數組data2,並對數組中各元素進行初始化
int data2[5] = {5, 2, 4, 0, 3};
『拾』 C語言中一維數組正確的定義
符號常量是用一個標識符來表示一個常量,一維數組的定義方法為:類型說明符+數組名+[常量表達式];
類型說明符是任一種基本數據類型或構造數據類型。數組名是用戶定義的數組標識符。方括弧中的常量表達式表示數組元素的個數或者長度,可以是常量或符號常量,不能為變數。
例如:
1、int x[8]; 表示定義一個整型數組x,數組長度為8.
2、float a[8],b[10];表示定義一個實型數組b,數組長度為8,一個實型數組c,數組長度為10
3、 ch[15]; 表示定義一個字元數組ch,數組長度為15。
(10)c語言一維靜態數組擴展閱讀
在程序中可以使用下標變數,即說明這些變數的整體為數組,數組中的每個變數的數據類型是相同的。當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。
一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。二維及多維數組可以看作是一維數組的多次疊加產生的。
數組是計算機編程中的重要概念,運用數組可以方便地處理大規模的數據。