關於C語言中陣列的定義,C語言中如何定義陣列

2022-05-30 02:58:33 字數 5983 閱讀 4766

1樓:春志學陳卓

一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫:

void

swp(int*

p){}

在呼叫的時候swp(array)也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。

2樓:承懷蕾稱優

char

s[10]="123"是表示前三個元素分別是1,2,3但s[2]='\0'

表示的是沒有字元,就是空了.再說你的s[2]已經是呼叫字元了的,和這個字元陣列中的別的元素已經沒有什麼關係了的.

'\0'為字串的結束符.

3樓:吾樂安貿航

如果在參數列中,int

,實際會被轉換成int

*。不信你可以試試這個程式:

#include

void

f(int

b[10])

void

main()

至於為什麼,就是為了防止傳遞陣列,c認為有一個原始的,就操作它好了,如果你覺得要另立副本,就自己新分配記憶體,或者用自己auto分配的記憶體,將內容複製過來。當然c++的今天,你可以用引用或者物件複製,來強行真正去傳整個陣列。

不能說簡單型別傳值,陣列只傳首地址指標就不好,現在很多語言還都傳引用,但是真正需要副本時,要想辦法,否則可能出現功能問題。

c語言中如何定義陣列

4樓:匿名使用者

在c語言中使用陣列必須先進行定義。一維陣列的定義方式為:

型別說明符 陣列名 [常量表示式];

其中,型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。方括號中的常量表示式表示資料元素的個數,也稱為陣列的長度。例如:

對於陣列型別說明應注意以下幾點:

1) 陣列的型別實際上是指陣列元素的取值型別。對於同一個陣列,其所有元素的資料型別都是相同的。

2) 陣列名的書寫規則應符合識別符號的書寫規定。

3) 陣列名不能與其它變數名相同。例如

是錯誤的。

4) 方括號中常量表示式表示陣列元素的個數,如a[5]表示陣列a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。

5) 不能在方括號中用變數來表示元素的個數,但是可以是符號常數或常量表示式。例如:

是合法的。但是下述說明方式是錯誤的。

6) 允許在同一個型別說明中,說明多個陣列和多個變數。例如:

c語言陣列的定義

5樓:打孃胎裡喜歡你

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];

6樓:文化廚子

一般有四種陣列定義方式,以一維陣列為例:

//定義指定維數的陣列

int arr[10];

//定義不指定維數的陣列,陣列維數有初化列表元素個數決定。

int arr = ;

//定義指定維數的陣列,初始化不完全時,系統將未初始化元素初始化為0int arr[10] = ;

//動態分配一個陣列。下面分配了一個有10個元素的陣列。

int *arr  =(int *) malloc(10 * sizeof(int));

7樓:帆帆

元素型別名 陣列名[元素個數] 定義一個包含十個int型元素的陣列,陣列名為arr:int arr[10];//int為元素的型別,不是陣列的型別,陣列是int[10]型別的。

動態陣列與靜態陣列的對比對於靜態陣列,其建立非常方便,使用完也無需釋放,要引用也簡單,但是建立後無法改變其大小是其致命弱點!

對於動態陣列,其建立麻煩,使用完必須由程式設計師自己釋放,否則嚴重會引起記憶體洩露。但其使用非常靈活,能根據程式需要動態分配大小。

如何構建動態陣列遵循原則

申請的時候從外層往裡層,逐層申請;

釋放的時候從裡層往外層,逐層釋放。

構建所需指標對於構建一維動態陣列,需要一維指標;

對於二維,則需要一維,二維指標;

三維需要一,二,三維指標;

依此類推。

c語言中如何定義陣列

8樓:文望刃

c語言中,同變數一樣;陣列也必須先定義後使用。

一維陣列的定義形式:

型別識別符號  陣列名[常量表示式];例如int a[10];   其中a為地址常量。

如變數的定義一樣,int a ;double a;float a等;陣列的定義只是把後面的變數名改為陣列名而已。

int a[10]就是定義了一個陣列名為a的陣列;此陣列有10個元素。其中各元素從a[0]到a[9];並沒有a[10]元素。下面列舉一個。

常量表示式可以包括字面常量和符號常量;但不能包含變數。例如對下面定義是錯誤的

int n=5

int a[n]

可以修改為

#define n 5

int a[n]

其中對二維及多位陣列定義可以類推

int  a[x][y][z][...]其中 x,y,z為數字。

9樓:匿名使用者

陣列定義的三種方式

1、第一種

int a = newint[5];

a[0] = 10;

2、第二種

int c = newint;

3、第三種

int i =;

4、錯誤的寫法

int i1 = [1,2,3,4];

system.out.println(arrays.tostring(c));

5、總之,具體的元素不能被【】包裹。【】包裹的應該是陣列的數量。

擴充套件資料陣列的注意事項:

1、 陣列中每個元素的資料型別必須相同,對於inta[4];,每個元素都必須為 int。

2、 陣列長度 length 最好是整數或者常量表示式,3、 訪問陣列元素時,下標的取值範圍為 0 ≤ index < length,

參考資料

10樓:星願

定義整形陣列

int a[5];

int a = ;

int a[3][4];/*建立一個有3行4列的二維陣列*/

printf("please enter a[i]");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

可以完成a[5]的陣列輸入

11樓:育知同創教育

主函式內定義的陣列在堆疊段中分配記憶體。

全域性變數陣列在資料段中分配記憶體。

一般資料段比堆疊段大很多,

所以堆疊段分配不了的記憶體,資料段可以分配

(1)在堆疊段中分配記憶體,由於太大無法分配,所以錯誤。

(2)在資料段中分配記憶體,資料段可以分配,無錯誤。

(3)陣列比(1)需要的記憶體少,在堆疊段大小範圍內,可以分配,無錯誤(4)同(3)

12樓:匿名使用者

int a[3];/*建立一個有3個元素的一維陣列*/

int a[3][4];/*建立一個有3行4列的二維陣列*/

int a[4][5][6];/*建立一個有4層5行6列的三維陣列*/

13樓:匿名使用者

定義一維陣列:int a[n] 如:int a[3] ,表示這個陣列可以存三個數: 1 4 2

定義二維陣列: int a[m][n] 如 int a[2][3],標售這個陣列可以存2行三列 共6個數:

如:2 4 4

5 6 7

14樓:風了瘋了鋒了

如果是定義數

組,一維陣列就是int a[10];

型別說明符 陣列名[常量表示式];

二維陣列 int a[3][4];

型別說明符 陣列名[常量表示式] [常量表示式];

但我覺得這個比較好理解,難一點的就是關於陣列的輸入要用到for的迴圈語句

printf("please enter a[i]");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

可以完成a[5]的陣列輸入

15樓:匿名使用者

例如定義整形陣列

int a[5];

int a = ;

16樓:

詳細瞭解c語言程式設計知識第七節-c語言陣列定義,標識與賦值

c語言中一維陣列正確的定義

17樓:旅者一生

符號常量是用一個識別符號來表示一個常量,一維陣列的定義方法為:型別說明符+陣列名+[常量表示式];

型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。方括號中的常量表示式表示陣列元素的個數或者長度,可以是常量或符號常量,不能為變數。

例如:1、int x[8]; 表示定義一個整型陣列x,陣列長度為8.

2、float a[8],b[10];表示定義一個實型陣列b,陣列長度為8,一個實型陣列c,陣列長度為10

3、 ch[15];  表示定義一個字元陣列ch,陣列長度為15。

擴充套件資料

在程式中可以使用下標變數,即說明這些變數的整體為陣列,陣列中的每個變數的資料型別是相同的。當陣列中每個元素都只帶有一個下標時,稱這樣的陣列為一維陣列。

一維陣列是由數字組成的以單純的排序結構排列的結構單一的陣列。一維陣列是計算機程式中最基本的陣列。二維及多維陣列可以看作是一維陣列的多次疊加產生的。

陣列是計算機程式設計中的重要概念,運用陣列可以方便地處理大規模的資料。

18樓:

定義如下:

符號常量是用一個識別符號來表示一個常量,一維陣列的定義方法為:型別說明符+陣列名+[常量表示式];型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號。

方括號中的常量表示式表示陣列元素的個數或者長度,可以是常量或符號常量,不能為變數。

c語言中如何定義二維陣列,C語言中如何定義一個二維陣列

int a 2 3 a 0 0 a 0 1 a 0 2 a 1 0 a 1 1 a 1 2 表示兩行三列 include main int i,j,total 0 for i 0 i 3 i printf n printf total d n total 用指標new出來 二維陣列定義必須規定列 i...

c語言中陣列下標最大為多少C語言中陣列下標最大為多少

陣列下標最大為陣列個數減一,例如定義 int a 5 則陣列a的下標最大為4 因為在c語言中陣列的下標是從0開始的,這樣從0到陣列個數減一,共陣列的總個數。例如 include int main 執行結果 1 2 3 4 5 1 2 3 4 5 額 沒有那麼多的吧記憶體吧 比如說int a 5 他的...

c語言中陣列指標a有啥區別,C語言中陣列指標 a 與a 有啥區別?

第一個a中有2個符號,所以要看優先順序,看限於誰結合。已知比 優先所以版第一個a先與 權結合,所以a是一個陣列,陣列中的元素都是指標a就單單表示陣列。例子 char a a是陣列,元素都是char 即指標 char a a是陣列,元素都是char 即字元 a 這個為指標陣列,int a 5 就定義了...