c語言中陣列名及陣列元素名有何區別

2021-05-19 06:46:53 字數 5838 閱讀 6871

1樓:匿名使用者

例如char a=; a是代表整個陣列,a[0],a[1],...,a[4] 各自代表其中的一個數.嚴格來說,a是一支指向char的指標.

*a就是a[0],*(a+1)就是a[1],...,*(a+4)就是a[4].

2樓:匿名使用者

int array[3]=

上式中,array就是陣列名,你說的陣列元素名應該是array[0]或array[1]、array[2]這個吧。

這兩個的區別就是 array是一個指標,指向陣列的首地址,也就是array[0]的地址;而array[0]相當於一個變數名,代表了array[0]中的元素。

3樓:匿名使用者

陣列名的本質是整個陣列的首個元素的地址,可按照指標來對待,而陣列元素名就是陣列某個元素的名稱,可按照普通變數來對待。

4樓:wyxsxs果果

1 陣列是一種自定義的資料型別,陣列是一些相同型別的物件的集合,方便做迴圈操作,方便程式設計。

2 宣告陣列的時候要明確以下三點:1.確定陣列名稱;2.確定陣列元素的型別;

int a =

其中陣列名稱a:陣列名是一個常量,代表著陣列元素集合在記憶體儲存的起始地址,不能進行自增自減運算。

陣列元素:int a[0] = 1,int a[1] =2 ,int a[2] = 3.陣列的每一個元素都能看成是一個同型別的變數.

5樓:特維佐

陣列名是一個陣列代表一個集體的名稱,陣列元素名是單個元素的名稱。

陣列名和指標的區別?

6樓:百度使用者

可以!下面是我學習陣列和指標的總結: (1)指向陣列首地址

對於一維陣列a[10]:陣列的首地址為a; 呼叫:p=a; *(a+i)或者*(p+i)

對於二維陣列a[3][4]:整個陣列的首地址為a[0];呼叫:p=a[0]; *(a[0]+i)或者*(p+i)。此時a代表陣列第一行的地址。

(3)指向陣列的每行

形如:int a[3][4];

int (*p)[4]; p=a;

呼叫:*(*(p+i)+j)例:;

int (*p)[4],i,j;

cin>>i>>j;

p=a; //a代表的是陣列第一行的首地址.

cout<<*(*(p+i)+j)<

(4)指標陣列

例如:(字串陣列指標法)

; cout<

處理字串還有以下方法:

(字元陣列法,c-string法)

;cout<

(字串陣列法,string法)

; cout<

三種方法的共同點是name[0]都是代表的"basic"的首地址而非其本身。

(5)指向指標的指標

形如 char **p;例:;

p=name+2;

cout<<*p<

cout<<**p<

分析:*p=name[2]= "c++"的首地址,(通常所說一個字串的「地址」實際上指的是它的「首地址」或者「起始地址」),用cout 輸出的不是字串的首地址而是整個字串(只要把一個字串的起始地址給它,cout就一直往後面輸出,直到遇到結束符'\0'為止),為了證明這一點,請看:string a=「finish」;cout<

故:本例中第一個*p輸出"c++",第二個**p代表"c++"的首地址的內容,即c。

在上一例中,name[0]為"basic"的首地址,輸出"basic",若換成*name[0]則輸出b,若換成name則代表整個陣列的首地址(而不是單個字串"basic"的首地址),所以此時輸出的是整個陣列的首地址。若用*name則輸出整個陣列的首地址的內容,即"basic"(可見字串的首地址內容為單個字元,一維陣列首地址的內容為它的第一個元素,對於二維陣列,比如int a[3][4],a代表的是第一行的地址,所以cout<

c語言中陣列名代表什麼,陣列元素用什麼方法表示?

7樓:投機士

1 陣列是一種自定義的資料型別

,陣列是一些相同型別的物件的集合,方便做迴圈操作,方便程式設計。

2 宣告陣列的時候要明確以下三點:1.確定陣列名稱;2.確定陣列元素的型別;

int a =

其中陣列名稱a:陣列名是一個常量,代表著陣列元素集合在記憶體儲存的起始地址,不能進行自增自減運算。

陣列元素:int a[0] = 1,int a[1] =2 ,int a[2] = 3.陣列的每一個元素都能看成是一個同型別的變數.

8樓:匿名使用者

陣列名即陣列首地址,是一個常量。 陣列元素使用"[ n ]"運算子(下標運算子)來表示第n+1號元素,或者使用「 *(p+n) 」來表示第n+1號元素。 陣列元素對於編譯器來說 ,在支援快速下標運算的處理器上,a[n]是直接是被轉化成彙編**,不支援的被轉化為*(a+n)。

這也是老的c程式會在大多數情況下不使用下標運算子的原因。

9樓:匿名使用者

陣列名只是一個合法的標示符,陣列元素用a[0],a[1]……等表示

10樓:匿名使用者

c語言中陣列是具有相同資料型別資料有序列表,array[n]表示陣列array的第n - 1個資料,陣列的定義方法與變數定義方法相同,如 "datatype" array[number];,其中"datatype"是資料型別名,array是陣列名稱,number是正整數常量。

11樓:匿名使用者

# include void main()for(j=0;j<5;j++)for (i=1;i<3;i++)printf("%d",b[i];printf("\n");} 你自己再看一下,看能不能夠達到要求。

c語言中的指標陣列和陣列指標的區別

12樓:黑丶雨

指標陣列:陣列裡的每一個元素都是指標如*p[10],裡面的 p[0] 到 p[9] 都是指標;

可參考:http://baike.

陣列指標:指向一個陣列的指標,如 arr[10] 是一個陣列, 讓一個指標指向這個陣列 p = arr;

訪問時通過 *(p + n) 或 p[n] 訪問元素值,n為元素索引值;

可參考:http://baike.

13樓:育知同創教育

int (*p)[4]; // 定義一個陣列指標,指向含4個元素的一維陣列,陣列元素是int型別。

int *p[4]; // 定義一個指標陣列,陣列中每個元素是一個指標,指標指向**就要根據程式來定了。

判斷陣列指標與指標陣列主要通過運算子的優先順序來判斷。

int (*p)[4]; // 由於( )的優先順序高,說明p是一個指標,指向一個一維陣列的指標

int *p[4]; // 由於[ ]的優先順序高,先與p結合成為一個陣列,再由int*說明這是一個整型指標陣列

簡述陣列名和陣列元素作函式引數的區別

14樓:匿名使用者

陣列名 傳的是地址

等於把整個陣列都傳過去了。 相當於傳指標呼叫陣列元素,傳的是本身

只是一個元素的值, 屬於傳值呼叫。

c語言,陣列名與陣列第一個元素的關係

15樓:匿名使用者

主要有bai如下區別:

1、數du組zhi名代表

陣列的首地址,若daoc="abcdef",則陣列名c代表陣列元素內'a'的地址。

2、%s用於輸出一容個字串,對應的引數是陣列名(即陣列的首地址)。輸出從陣列起始位置到陣列中第一個'\0'之間的全部字元。

2、%c用於輸出一個字元,即字元的值。而陣列名是陣列的首地址,即&c[0],程式執行時,為陣列分配的儲存單元是隨機的,即每次執行&c[0]的值是不同的,故把它作為ascii值對應到相應的字元也是隨機的。若想輸出陣列第一個元素的值,可以用c[0],即printf("%c",c[0]);

16樓:匿名使用者

陣列是多個元素的集合,而其第一個元

素只是它的一個部分

當我們定義一個陣列時,內要用到方括號修飾容符, 如int a[10];

這也就決定了它的型別為int [10],但其元素的型別卻為int區別:而c中的指標和陣列實際上十分類似(但陣列的指標為常量),所以當你嘗試用整型(若要用printf完整輸出應該用「%ld」格式化)的格式輸出一個陣列時,一般會輸出一個-9223372036854775807 ~ 9223372036854775807的整數,其實質是陣列的起始位置的指標。(注意,輸出的範圍根據cpu的位數而不同,以上為64位輸出的結果)

而當你用a[0]來使用第一個元素時,其型別為int關係:在區別中已經提到,指標和陣列十分類似,也就是說可以用用於指標的一元運算子」解引用「(*)來獲得一個陣列的第一個元素。

也就是說,一下兩個表示式是等效的

a[0]

*a那麼同理,我們也可以用「取地址「運算子(&)來獲取第一個元素的地址,也就是陣列的地址(注意,這裡的等號不是賦值語句,只是表示左右兩個表示式等效)

a = &a[0]

17樓:匿名使用者

是真的c==&c[0]

也就是說陣列名實際是陣列首地址

所以用%c輸出c時,只是將陣列首地址的低8位作為字元輸出,由於地址是隨機的,所以輸出結果也是隨機的

c語言中陣列名作為引數有什麼特點

18樓:倒黴熊

陣列名作為引數,在引數的傳遞中 會退化為指標,也就是說 陣列名作為引數,傳遞的是陣列的首地址。

19樓:

陣列名相當於記憶體中 該陣列的首地址

c語言中陣列名和指標的區別

20樓:匿名使用者

陣列在當作引數傳遞時,可以當作指標;當然,引數傳遞相當於賦值操作,所以用指標來接受陣列的值也是可以的。

除此之外,指標就是指標,陣列就是陣列,一點也不一樣,例如1,陣列名不能作為左值,即不能被賦值,也不能進行++ --操作2,sizeof 陣列名 和 sizeof 指標 不同

21樓:

陣列名本質上就是個指標,也就是地址,但是它是一個常指標,是個固定值,而指標是是指標變數的簡稱,是個變數,這個變數存放的是地址值,它的值是可以改變的。例如:

int *p;

int a,b;

p=&a;  //把變數a的地址賦值給指標p,那麼指標p就指向了變數a的記憶體單元

p=&b;  //把變數b的地址賦值給指標p,那麼指標p就指向了變數b的記憶體單元

int a[10];  //整型陣列,陣列名a本質上是一個地址,是首元素地址,它是一個固定值,不能對它進行賦值操作。

C語言sizeof陣列名

陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 這種誤解的根源在於國內某著名的c程式設計教程 出版量最多的那本破書 陣列名的內涵在於其指代實體是一種資料結構,這種資料結構...

c 陣列名和指標,C 的指標與陣列名有什麼區別?

1.str是陣列,str相當 copy於陣列首地址。bai2.mstr 指向 str,相當於du指向了陣列的第一個zhi地址,dao mstr 就輸出h。3.str只是相當於陣列首地址,但是對陣列名取地址,str 得到的是一個指向整個地址的指標,型別是char 12 所以第一行輸出hello wor...

c語言中,整型陣列的陣列名錶示指向該陣列的元素的指標,那麼字元陣列的陣列名也表示指向元

是的,陣列名都是表示指向第一個元素的指標,也就是說陣列名是一個指標,但是要注意,陣列名這個指標是不能修改的。在c語言中陣列名是一個什麼的常量 陣列名是代表該陣列的首地址且符合識別符號書寫規定的變數識別符號。整個陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c 10 設陣列c的首地址...