1樓:文望刃
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為數字。
2樓:匿名使用者
陣列定義的三種方式
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,
參考資料
3樓:星願
定義整形陣列
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]的陣列輸入
4樓:育知同創教育
主函式內定義的陣列在堆疊段中分配記憶體。
全域性變數陣列在資料段中分配記憶體。
一般資料段比堆疊段大很多,
所以堆疊段分配不了的記憶體,資料段可以分配
(1)在堆疊段中分配記憶體,由於太大無法分配,所以錯誤。
(2)在資料段中分配記憶體,資料段可以分配,無錯誤。
(3)陣列比(1)需要的記憶體少,在堆疊段大小範圍內,可以分配,無錯誤(4)同(3)
5樓:匿名使用者
int a[3];/*建立一個有3個元素的一維陣列*/
int a[3][4];/*建立一個有3行4列的二維陣列*/
int a[4][5][6];/*建立一個有4層5行6列的三維陣列*/
6樓:匿名使用者
定義一維陣列: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
7樓:風了瘋了鋒了
如果是定義數
組,一維陣列就是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]的陣列輸入
8樓:匿名使用者
例如定義整形陣列
int a[5];
int a = ;
9樓:
詳細瞭解c語言程式設計知識第七節-c語言陣列定義,標識與賦值
c語言中如何給陣列定義並賦初值?
10樓:我是果瘋
字串陣列定義
賦值:char c[6]=
整數陣列定義賦值:
int a[5]=;
int a[5];
for(int i=0;i<5;i++)
a[i]=i;
定義float陣列並賦值:
float b[10]=
11樓:匿名使用者
陣列賦值可以通過以下幾種方法:
1、定義的時候直接賦初值(用{});
例如:int array=
2、定義後再給陣列各元素賦值;
例如:int array[3];
for(int i=0;i<3;i++)
array[i]=i;
12樓:匿名使用者
int a[5]=;
型別名 陣列名[陣列長度] =;
13樓:人生2一首斷章
定義的時候直接賦值就好了例如char a[ ]=
14樓:匿名使用者
int aa;
c語言中如何定義動態二維陣列並輸出
15樓:會飛的小兔子
intmain()
//釋放記憶體
for(i=0;ifree(p[i]);
free(p);
return0;
}擴充套件資料c語言中通過函式傳遞二維陣列
#include
void func(int n, int a[size])void main()
16樓:達豐
實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。**如下:
int main()
//釋放記憶體
for(i = 0; i < m; i ++)free(p[i]);
free(p);
return 0;}
17樓:_葉子妞妞
可以按照下面步驟進行定義二維陣列並輸出:
1 定義二維指標。
2 確定陣列維數,即行數和列數。
3 申請行數個一維指標大小空間,並賦值給二維指標。
4 對於每個一維指,申請列數個元素的空間,並賦值給對應的一維指標。
5 輸入或賦值資料。
6 使用雙重迴圈,逐個範圍儲存單元並輸出。
7 逐個釋放一維指標上的記憶體。
8 釋放二維指標上的記憶體。
以整型二維陣列為例:
下面的**,實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。
#include //包含輸入輸出函式
#include //包含動態記憶體分配函式。
int main()
//釋放記憶體
for(i = 0; i < m; i ++)free(p[i]);
free(p);
return 0;}
18樓:匿名使用者
多維陣列一維
化...
#include
#include
int main()
}for(i=0;i printf("\n");}} 19樓:匿名使用者 先定列空行 a[2] c語言陣列的定義 20樓:打孃胎裡喜歡你 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]; 21樓:匿名使用者 我是菜鳥~~~ 把具有相同資料型別的若干變數按有序的形式組織起來, 以便於程式處理,這些資料元素的集合就是陣列,按照陣列 元素的型別不同,可分為:數值陣列、字元陣列、指標陣列 結構陣列等各種類別。 陣列說明的一般形式為: 型別說明符 陣列名[常量表示式],......; 其中型別說明符可以是任一種基本資料型別或構造資料型別 陣列名是定義的陣列識別符號。常量表示式表示資料元素的個 數,也就是陣列的長度。 對陣列型別的說明應注意: 1)陣列的型別實際上是陣列元素的取值型別。 2)陣列名的書寫應符合識別符號的書寫規範。 3)陣列名不能與其他變數名相同。 4)常量表示式表示陣列元素的個數,但是其下標從0開始計算 5)不能在方括號中用變數來表示元素的個數,但是可以用符號 常數或常量表示式。 6)允許在同一個型別說明中,說明多個陣列和多個變數。 陣列元素的表示方法 一般比較簡單就是陣列名[下標]來引用,先定義後用,如果 是小數的話,直接自動取整。 陣列賦值分為:初始化賦值和動態賦值 初始化賦值一般形式為: static 型別說明符 陣列名[常量表示式]=; static表示靜態儲存型別,c語言規定只有靜態儲存陣列和外部陣列 才可做初始化賦值。 c語言對陣列的初始化賦值還有幾個規定: 1)可以只給部分元素賦值。 2)只能給元素逐個賦值,不能給陣列整體賦值。 3)如不給可初始化的陣列賦初值,在在陣列說明中,可以不給出陣列 元素的個數。 下面看一下多維陣列 主要看一下二維陣列,其他的就可以用二維陣列類推得到 二維陣列的型別說明的一般形式是: 型別說明符 陣列名[常量表示式1][常量表示式2]...; 在c語言中二維陣列是按行排列的 二維陣列的表示方法: 陣列名[下標][下標] 二維陣列的初始化 二維陣列初始化也是在型別說明時給各下標變數賦以初值。 二維陣列可 按行分段賦值,也可按行連續賦值。 二維陣列的初始化還應該注意: 1)可以只對部分元素賦初值,未賦初值的元素自動取為0。 2)如對全部元素賦初值,則第一維的長度可以不給出。 字元陣列: 用來存放字元變數的陣列稱為字元陣列。 c語言允許用字串的方式對陣列作初始化賦值。例如: static char c=; 可寫為: static char c=; 或去掉{}寫為: sratic char c="c program"; 用字串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字串結 束標誌'\0'。上面的陣列c在記憶體中的實際存放情況為: c program\0`\0'是 由c編譯系統自動加上的。由於採用了`\0'標誌,所以在用字串賦初值時一 般無須指定陣列的長度, 而由系統自行處理。在採用字串方式後,字元數 組的輸入輸出將變得簡單方便。 除了上述用字串賦初值的辦法外,還可用 printf函式和scanf函式一次性輸出輸入一個字元陣列中的字串, 而不必 使用迴圈語句逐個地輸入輸出每個字元。 void main() printf("%s\n",c); 注意在本例的printf函式中,使用的格式字串為"%s", 表示輸出的是一 個字串。而在輸出表列中給出陣列名則可。 不能寫為: printf("%s",c); void main() char st[15]; 本例中由於定義陣列長度為15, 因此輸入的字串長度必須小於15, 以留出一個位元組用於存放字串結束標誌`\0`。 應該說明的是,對一個字 符陣列,如果不作初始化賦值,則必須說明陣列長度。還應該特別注意的是, 當用scanf函式輸入字串時,字串中不能含有空格,否則將以空格作為串 的結束符。例如執行例4.8,當輸入的字串中含有空格時,運**況為: input string:this is a book this 從輸出結果可以看出空格以後的字元 都未能輸出。 為了避免這種情況, 可多設幾個字元陣列分段存放含空格的 串。程式可改寫如下: lesson void main() 本程式分別設了四個陣列, 輸入的一行字元的空格分段分別裝入四個陣列。 然後分別輸出這四個陣列中的字串。在前面介紹過,scanf的各輸入項必須以 地址方式出現,如 &a,&b等。但在例4.8中卻是以陣列名方式出現的,這是為 什麼呢?這是由於在c語言中規定,陣列名就代表了該陣列的首地址。 整個 陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],在 記憶體可表示如圖4.2。設陣列c的首地址為2000,也就是說c[0]單元地址為2000。 則陣列名c就代表這個首地址。因此在c前面不能再加地址運算子&。如寫作 scanf("%s",&c);則是錯誤的。 在執行函式printf("%s",c) 時,按陣列名c 找到首地址,然後逐個輸出陣列中各個字元直到遇到字串終止標誌'\0'為止。 字串常用函式: 用於輸入輸出的字串函式在使用前應包含標頭檔案"stdio.h",使用其他字串 函式則應包含標頭檔案"string.h".下面介紹幾個常用的字串函式: 1)字串輸出函式 puts 格式:puts(字元陣列名) 功能:把字元陣列中的字元 串輸出到顯示器。 #include"stdio.h" main() 2)字串輸入函式gets 格式:gets(字元陣列名) 功能:從標準輸入裝置上 輸入一個字串。 #include"stdio.h" main() tips:gets函式並不以空格作為字串輸入結束的標誌,而只是以回車作為輸入 結束,這是與scanf不同的部分 3)字串連線函式strcat 格式:strcat(字元陣列名1,字元陣列名2) 功能:把字元陣列2中的字串連線到字元陣列1中字串後面,並刪去字串 1後的串標誌"\0",本函式返回字元陣列1的首地址。 #include"string.h" main() 4)字串拷貝函式strcpy 格式:strcpy(字元陣列名1,字元陣列名2) 功能:把字元陣列2中的字串拷貝到字元陣列1中,串結束標誌 "\0"也一同 拷貝,字元陣列2也可以是一個字元常量,就相當於把一個字串賦予一個字元陣列 #include"string.h" main() 5)字串比較函式strcmp格式:strcmp(字元陣列1,字元陣列2) 功能: 按照ascii碼順序比較兩個陣列中的字串,並有函式返回值返回比較結果 #include"string.h" main() a[i]=n; for(i=0;i<10;i++) printf("%d",a[i]); printf("\n"); }例二: main() ;int b[3],i,j,l; for(i=0;i<=2;i++) printf("\narray a:\n"); for(i=0;i<=2;i++) printf("\narray b:\n"); for(i=0;i<3;i++) printf("%5d",b[i]); printf("\n"); }例三: void main() if(p!=i) puts(cs[i]); printf("\n"); 我不清楚你想問什麼,不過第二種寫法是對的。char chars 11 是定義了一個初始值為空總數為11的字元陣列。char s c language 定義一個總數為11的字元陣列,但是有初值。注意是11個不是10個,用這種方定義的字元陣列末尾會加一個 0。陣列的賦值通常是使用花括號來表示的,但是字元... 方法為 輸入一個資料x,將陣列中的資料與x逐一比較,如果大於x,記錄下資料的下標,然後此資料下標和其後的資料的下標都加一,相當於都向後挪一位,然後將x賦值給陣列的那個下標。include int main int i,j,k,x,a 11 3,6,7,9,12,14,15,27,29,31 prin... float a 5 是定義了一個指向陣列的指標,如果要把它當成二維陣列的話,相當於列數為5,行數可以動態分配。如 float a 5 int n 2 定義行數為2 a new float n 5 int sum 0 for int i 0 i 對於你定義的這個陣列,它表示有5個float 型別的指標...c語言陣列賦值問題,c語言中如何給陣列定義並賦初值?
在c語言中如何在陣列中插入數在c語言中,如何在陣列中插入一個數
C語言中關於二維陣列的問題,c語言關於定義二維陣列的問題