1樓:投機士
1 陣列是一種自定義的資料型別
,陣列是一些相同型別的物件的集合,方便做迴圈操作,方便程式設計。
2 宣告陣列的時候要明確以下三點:1.確定陣列名稱;2.確定陣列元素的型別;
int a =
其中陣列名稱a:陣列名是乙個常量,代表著陣列元素集合在記憶體儲存的起始位址,不能進行自增自減運算。
陣列元素:int a[0] = 1,int a[1] =2 ,int a[2] = 3.陣列的每乙個元素都能看成是乙個同型別的變數.
2樓:匿名使用者
陣列名即陣列首位址,是乙個常量。 陣列元素使用"[ n ]"運算子(下標運算子)來表示第n+1號元素,或者使用「 *(p+n) 」來表示第n+1號元素。 陣列元素對於編譯器來說 ,在支援快速下標運算的處理器上,a[n]是直接是被轉化成彙編**,不支援的被轉化為*(a+n)。
這也是老的c程式會在大多數情況下不使用下標運算子的原因。
3樓:匿名使用者
陣列名只是乙個合法的標示符,陣列元素用a[0],a[1]……等表示
4樓:匿名使用者
c語言中陣列是具有相同資料型別資料有序列表,array[n]表示陣列array的第n - 1個資料,陣列的定義方法與變數定義方法相同,如 "datatype" array[number];,其中"datatype"是資料型別名,array是陣列名稱,number是正整數常量。
5樓:匿名使用者
# include void main()for(j=0;j<5;j++)for (i=1;i<3;i++)printf("%d",b[i];printf("\n");} 你自己再看一下,看能不能夠達到要求。
在c語言程式中,陣列名代表的是 ____ 。
6樓:水瓶一頭老母豬
選a,陣列的首位址。
在c語言程式中,陣列名表示的是「陣列首個元素的位址,而首個元素是int型別」。
在c語言中, 陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。
陣列是一種特殊的物件型別,其中可以儲存乙個有序的元素集合。陣列元素的型別 稱為該陣列的基型別(base type);其中儲存的元素個數是乙個固定的屬性,稱為其長度(length)。
陣列的特點:
1、陣列是相同資料型別的元素的集合。
2、陣列中的各元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。
7樓:匿名使用者
c語言規定陣列名代表陣列的首位址,也就是第乙個元素的位址。&a=&a[0]。
規定就這樣,沒有理由
8樓:慕雨那年
陣列名是這個陣列的首位址,它也是一種指標。這是概念,沒什麼好解釋的,記住就好了。
在c語言中陣列名是乙個什麼的常量
9樓:匿名使用者
陣列名是代表該陣列的首位址且符合識別符號書寫規定的變數識別符號。
整個陣列是以首位址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],設陣列c的首位址為2000,也就是說c[0]單元位址為2000。則陣列名c就代表這個首位址。
因此,在使用scanf()函式的時候,變數c前是不能新增位址運算子&的,scanf("%s",&c);則是錯誤的的寫法。
10樓:聽不清啊
在c語言中陣列名就是乙個指向同名陣列首位址的乙個(該陣列元素型別的)指標常量。
例如:int a[100];
那麼,a就是乙個指向a[0]的int 型的指標常量。
11樓:匿名使用者
int [10] 型別
理解成:int陣列型別,陣列大小為10。
你可以使用這個檢視:
#include
using namespace std;
int main()
{int ar[10];
cout<或者你在編譯器裡面單步除錯到int ar[10],然後在變數檢視視窗裡面可以看到該變數ar的型別。
12樓:
int a[10]; //a的型別為const int *,是常值整型指標,不能改變a的值。
13樓:匿名使用者
陣列名代表該陣列的起始位址,沒別的意思,你可以用vc++除錯,可以看到陣列名,就是乙個位址
14樓:1234567珏
陣列名 代表首位址,,,這樣看來可以當做int 但貌似可以自定義。。
c語言中陣列名直接加數字的用法?請舉例
15樓:曾楊氏汝雁
inta[3];//宣告乙個3個元素的陣列。。這3個元素都是int型別的,分別是
a[0]
a[1]
a[2]
//使用的時候您可以當普通回變數使用。。比如答a[0]=1;
a[1]=2;
a[2]
=a[1]
+a[0];
printf("%d",
a[2]);
//您用a[10]情況類似,只是元素有10個,分別是0,1,2,……,9,注意,陣列元素下標都是從0開始。。
就是這樣,如果有不明白的您再問吧。。
16樓:月貓狗
//切記一bai點陣列名代表陣列的du首位址,還有就是arr[i] == *(arr + i)
#include
int main(void);
int len = 5;
int i,*p;
p = arr;
//第一種zhi迴圈陣列dao的方法
printf("第一種迴圈陣列的方法:\n");
for(i=0;i
17樓:帥氣的我
int a[5];
scanf("%d",a+1);這就代表大會a1的位址
c語言中的陣列是什麼意思?
18樓:手機使用者
把具有相同資料型別的若干變數按有序的形式組織起來,
以便於程式處理,這些資料元素的集合就是陣列,按照陣列
元素的型別不同,可分為:數值陣列、字元陣列、指標陣列
結構陣列等各種類別。
陣列說明的一般形式為:
型別說明符 陣列名[常量表示式],......;
其中型別說明符可以是任一種基本資料型別或構造資料型別
陣列名是定義的陣列識別符號。常量表示式表示資料元素的個
數,也就是陣列的長度。
對陣列型別的說明應注意:
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");
二維陣列名和指標的關係,C語言中陣列名和指標的區別
二維陣列名即陣列地址,指向首行地址,表面上看,行地址即一維陣列指標,而陣列名指向行就應該是指標的指標,但是必須注意指標也是有型別的,型別不同資料寬度也不同。如果a 10 10 假設int p a 那麼要對行遞增執行p 時,編譯器如何知道列寬?因為int 是指指向一個 int 型別的指標,32位系統中...
C語言中陣列名就是陣列的首位址,怎麼解釋?哥們菜鳥
哥們應該寫錯了吧,陣列名應該是a,以你的例子為例。int為型別說明符,a為說組名,3 20 是常量或者常量表示式 c語言預設陣列名a為陣列首位址 希望對你有幫助 樓主,你定義了乙個二維陣列,但你弄錯了一點,陣列名是a而不是你說的a 3 20 對於二維陣列a是指向行的而不是指向列。陣列名a是二維陣列第...
為什麼C語言中二維陣列的陣列名a和a表示的是同值
當定義二維陣列a m n 時,陣列名可以認為是二維指標,其指向二維陣列的首位址。於是a的值就是首位址的值。而 a,就是a 0 a 0 是第一行的標記,代表第一行的首位址。在二維陣列中,所有元素都是緊密排列的,這樣整個陣列的首位址,第一行的首位址,和第乙個元素的首位址,即a,a 0 a 0 0 都是相...