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

2021-03-11 08:13:18 字數 3009 閱讀 6791

1樓:匿名使用者

主要有bai如下區別:

1、數du組zhi名代表

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

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

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

2樓:匿名使用者

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

素只是它的一個部分

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

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

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

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

a[0]

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

a = &a[0]

3樓:匿名使用者

是真的c==&c[0]

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

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

在c語言中陣列名是一個什麼的常量

4樓:匿名使用者

陣列名是代表該陣列的首地址且符合識別符號書寫規定的變數識別符號。

整個陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],設陣列c的首地址為2000,也就是說c[0]單元地址為2000。則陣列名c就代表這個首地址。

因此,在使用scanf()函式的時候,變數c前是不能新增地址運算子&的,scanf("%s",&c);則是錯誤的的寫法。

5樓:聽不清啊

在c語言中陣列名就是一個指向同名陣列首地址的一個(該陣列元素型別的)指標常量。

例如:int a[100];

那麼,a就是一個指向a[0]的int 型的指標常量。

6樓:匿名使用者

int [10] 型別

理解成:int陣列型別,陣列大小為10。

你可以使用這個檢視:

#include

using namespace std;

int main()

{int ar[10];

cout<或者你在編譯器裡面單步除錯到int ar[10],然後在變數檢視視窗裡面可以看到該變數ar的型別。

7樓:

int a[10]; //a的型別為const int *,是常值整型指標,不能改變a的值。

8樓:匿名使用者

陣列名代表該陣列的起始地址,沒別的意思,你可以用vc++除錯,可以看到陣列名,就是一個地址

9樓:1234567珏

陣列名 代表首地址,,,這樣看來可以當做int 但貌似可以自定義。。

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

10樓:天雨下凡

是的,陣列名都是表示指向第一個元素的指標,也就是說陣列名是一個指標,但是要注意,陣列名這個指標是不能修改的。

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

11樓:投機士

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

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

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

int a =

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

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

12樓:匿名使用者

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

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

13樓:匿名使用者

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

14樓:匿名使用者

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

15樓:匿名使用者

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

陣列名和指標的區別是什麼C語言陣列名和指標的區別?

可以!下面是我學習陣列 和指標的總結 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...

c語言函式呼叫形參為陣列名的情況

include void sort int a 20 void main sort a 沒問 題bai 我調du試zhi過了 記得dao給回我加分答 c語言函式呼叫方法copy 1 如bai果func是一個已經定義的函式du 2 可以這麼寫zhi daofunc 3 也可以這麼寫,如果func有返回...

陣列與陣列中的元素在C語言中都寫成比如a這個樣子的嗎?怎麼寫得一樣的呢

a 10 表示陣列只有在初始宣告陣列的時候,例如 int a 10 宣告一個大小為10的陣列,陣列a的元素表示是從a 0 a 9 陣列a的第10個元素應該是a 9 不是a 10 所以你說的陣列與陣列中的一個元素都寫成a 10 這種情況是不可能出現的。夠清楚吧,3q給分!1 陣列定義時 陣列型別 陣列...