c二維陣列名指的是陣列的首位址嗎

時間 2021-09-11 22:33:35

1樓:祿學校寄藍

是的,你可以試試看,

比如int

arr[4][4]=;

cout<<(arr

==&arr[0][0]);

//比較一下陣列名和陣列第乙個元素位址的值比較一下,看是不是相等

2樓:匿名使用者

陣列名所代表的資料型別是指標常量,二維陣列就是指標的指標——二重指標,二重指標所存的內容就是一重指標的位址。所以二維陣列代表的是二重指標常量,所儲存的內容是「一重指標們」的首位址即第乙個一重指標的位址

3樓:匿名使用者

是的,比如二維陣列a[m][n],陣列名a是陣列的首位址,它相當於a[0],也就是第一行的首位址,主意在二維陣列中a[0] a[1]...都是位址

4樓:匿名使用者

可以這麼用,但是多維陣列理解起來要麻煩一些

5樓:一生何求

答:二維陣列名是陣列的首位址

1、眾所周知一維陣列名代表陣列的首位址

2、那麼二維陣列名是否代表二維陣列的首位址呢?答案是肯定的,因為二維陣列的本質是一維陣列,它在記憶體中的儲存也是按照一維陣列的方式儲存的。所以陣列名始終代表陣列的首位址。

3、我們可以程式設計取位址確認是否正確.答案輸出yes。

int main()

如果c++;cout<<"yes"<

return 0;}

6樓:匿名使用者

不是,你可以用指標的形式

c++中陣列名到底是不是乙個位址?

7樓:尋秦記記

a+1表示字串中第1個字元(從0計數)開始,它代表乙個位址沒錯,但是c++中字串對

《的過載功能,表示從當前位址直到字串結束到輸出到標準輸出,即列印埠,所以當char a = "asdf"時,cout << a+1就會列印sdf

8樓:匿名使用者

char陣列比較特殊, 你用int陣列來看看

字串會連續輸出, 直到遇見'\0'

int陣列就符合正常思維

c語言中二維陣列的a代表是0行首位址,那*a不就是首個元素嗎,為什麼*a代表的還是首個元素的位址

9樓:

哈哈!以下標從0開始說。若a是二維陣列名,則a作常指標使用時,a是第0行的指標,*a是第0行的第乙個元素的指標(二者值同,意義不同),**a是第0行的第0個元素的值。

這可以用以下**驗證:

int main(void);

printf("%d\n",**(a+1));

return 0;

}輸出肯定是4。這說明,既然a是第0行的指標,那麼a+1就是第1行的指標,*(a+1)則是第1行第0個元素的指標,**(a+1)當然就是第1行第0個元素的值4了……

10樓:聽不清啊

c語言中二維陣列的a代表是a陣列的首位址(值與0行首位址同),所以*a不是首個元素,*a代表的是0行的首位址,**a才是對首個元素的引用。

11樓:雙子牛總

胃口幾幅畫雞骨頭氣溫會偷偷去hgew

c++二維陣列名指的是陣列的首位址嗎? 40

12樓:匿名使用者

二維陣列名即為陣列的首位址,不過a表示行位址,當a+1指向了陣列的專下一行。a的位址屬和&a[0][0]的位址一樣,a+1的位址和&a[1][0]的位址一樣

int a[2][4] = ;

cout << a << endl;

cout << a+1 << endl;

13樓:匿名使用者

是的,你可以試試看,

比如int arr[4][4] = ;

cout<<(arr == &arr[0][0]); //比較一下陣列名和陣列第乙個元素位址的值比較一下,看是不是相等

14樓:愛因斯坦波

嗯,陣列名代表的是陣列的首位址

陣列名代表陣列第乙個元素的位址,二維陣列三維陣列也這樣嗎?

15樓:匿名使用者

同樣都是陣列名bai,而且陣列du

名代表陣列第一

zhi個元素的位址 這話說的有問題啊dao陣列名代表的是回陣列的首位址!答

但不同的維數的陣列情況是不一樣的,如二維陣列int b[3][2] ;

b是陣列的首位址,也是第一行的位址

b[0]是第一行第乙個元素的首位址(也可以說是陣列第乙個元素的位址)可是從數值上來說,b和b[0]是相等的。

變數在進行賦值時,需要接收資料的變數與值變數(或常量)是相同型別才可以

回到你的問題中

int a[2]=; //一維陣列

int b[1][2]=; //二維陣列

int * p1=a;//一維陣列對應一維指標,可以賦值int * p2=b; //二維陣列 對應 」偽「二維指標,而p2是一維指標,所以賦值時會有編譯錯誤

」偽「二維指標 這樣記比較方便,實際上應該是這樣的:

int (*p2)[2] = b ; //這樣才是準確的 p2是個指標,指向乙個有兩個int元素的資料塊

16樓:匿名使用者

對,不過二維陣列被視為元素為一維陣列的一維陣列,同樣地,三維陣列被視為元素為二維陣列的一維陣列。

在二維陣列中*a為什麼表示首位址而不是元素呢

17樓:匿名使用者

把二維陣列看做元素為陣列的陣列

則可知,*a其實就是a[0],認可看作為陣列的首個元素,只不過該元素仍是乙個陣列

18樓:匿名使用者

因為指標指的就是乙個位址,而不針對那個元素呀= =

c語言中乙個二維陣列 它的陣列名是a 那a和*a有什麼區別?

19樓:匿名使用者

對於二維陣列名a和*a,二者的區別在於型別不同。

對於type a[m][n];

當使用a時,可以等同於二級指標type **型。

而使用*a時,等同於type*型。

從概念上說,a表示二維陣列a的首位址,而*a表示二維陣列a第一行a[0]的首位址。這樣在使用的時候就有所區別。比如 對a的操作a[4]表示a的第四行首位址,而對*a的操作(*a)[4]則代表第一行的第4個元素,即a[0][4]。

所以a和*a除了值相同外,其它的各方面都是不同的。

20樓:匿名使用者

資料名可以看作指標常量,分配陣列空間時指標值就確定下來了,不像宣告的指標變數那樣,值是不能改變的。*a=a[0],對於二維陣列a[0]也是乙個指標,他們都指向陣列的首位址,值都相等,但是,a和a[0]雖然值相等,但對他們進行指標運算時,位址偏移的基礎不同。

21樓:匿名使用者

其實不大 *a就是a[0]都是第一行的位址

22樓:匿名使用者

有無指標指向的區別。

23樓:匿名使用者

a是這個二維資料首位址,*a是第乙個元素值。

為什麼不能把二維陣列名行的首位址賦給指標

赤水雲 要想直接把乙個二維陣列名賦給乙個指標,這個指標必須是行指標或二級指標才可以 因為在c程式設計系統中,對於二維陣列會看成陣列元素為一維陣列的一維陣列,即對於二維陣列aa 2 3 系統會看成aa 0 和aa 1 而aa 0 和aa 1 中分別包含三個元素,這就是系統對於二維陣列的處理 所以直接把...

二維陣列的位址問題,二維陣列位址問題,求詳解

1 a 0 0 為0行0列元素的首位址,a 0 n為0行第n個元素位址,那麼a 0 是表示0行首元素位址嗎?正確,a 0 就是0行首位址。a 0 是零行的首位址,實際上行的位址也只有乙個,也無所謂0行的首位址吧?a 0 值上,是和a 0 相同的,不過型別不一樣。a 0 等效於int 型,實際上是指向...

求助 C語言二維陣列指標問題,c語言二維陣列用指標表示的問題

1.對於int p a p型別和a是不同的。p是指向乙個指標 指向int型別的量 的指標,a則是指向乙個一維陣列 含2個int元素 的指標。想要建立相同型別的指標應該用int p 2 才行 3.感覺p跟a就同級吧但型別不同 所以其實int p a 兩側的指標的型別是不相同的,只是a的值賦給p而已 假...