C語言裡陣列名是地址嗎,C語言中陣列名和指標的區別

2021-03-03 21:58:47 字數 1619 閱讀 7855

1樓:匿名使用者

是地址,可以稱作陣列地址,也可以看成第一個元素的地址。舉個例子:

#include

int main(int argc, char *argv);p = array;

printf("p[2] = %d\n", p[2]);

return 0;

}這個程式輸出結果如下:

p[2] = 3

程式的第六行 p=array 就是把陣列地址賦值給地址變數。

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

2樓:匿名使用者

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

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

3樓:

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

int *p;

int a,b;

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

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

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

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

4樓:匿名使用者

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

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

5樓:匿名使用者

int array[3]=

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

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

6樓:匿名使用者

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

7樓:wyxsxs果果

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

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

int a =

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

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

8樓:特維佐

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

在C語言中陣列名是地址,那麼結構體名是不是地址呢

使用 取地址運算子 才能得到結構體的地址。和陣列不一樣,單獨的結構體名不是該結構體地址的 同義詞。單獨的機構體名不是該機構體的地址。當然不是,結構體名你可以理解成一個資料型別 不是,結構體名是一個型別名 不是,必須使用 才能得到地址。c語言中陣列名是一個地址變數嗎 結構體名相當於類名,作用也與類名相...

關於c語言中陣列名作為引數傳遞的問題

陣列名作為引數就退化 為指標.所以在你的sizeofmat中,sizeof x 就值就是sizeof一個指標的值.因為指標就是地址,陣列名也是地址.所以你陣列名作為引數的時候,是不會傳遞整個陣列的,而是傳遞了一個地址,就是指標.sizeofmat的引數錯誤 必須是陣列型別 sizof x 才能將其視...

關於c語言把陣列名賦予指標的問題

就是指向一個地址。陣列第一個元素的地址就是陣列地址。你的理解從本質來 上就有問題自 int p1 a不能通過編譯,因為a是二維陣列指標,型別是int 3 無法轉換到int 型。必須用int p1 3 a或者int p1 a 0 才可以。同理int p2 a 0 無法通過編譯,因為a 0 是一個int...