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 型,實際上是指向... 1.對於int p a p型別和a是不同的。p是指向乙個指標 指向int型別的量 的指標,a則是指向乙個一維陣列 含2個int元素 的指標。想要建立相同型別的指標應該用int p 2 才行 3.感覺p跟a就同級吧但型別不同 所以其實int p a 兩側的指標的型別是不相同的,只是a的值賦給p而已 假...為什麼不能把二維陣列名行的首位址賦給指標
二維陣列的位址問題,二維陣列位址問題,求詳解
求助 C語言二維陣列指標問題,c語言二維陣列用指標表示的問題