1樓:佘翰藻
a是一個二維陣列,相當於一個二維指標,即int **a;
那麼a就是代表整個陣列的首地址,
而*a就是代表這個陣列第一行的首地址,
**a就是代表這個陣列的第一個元素
這裡a *a的列印出來的地址值是相同的,因為他們整個陣列的首地址就是第一行元素的首地址
2樓:匿名使用者
**a 指的是 a[0][0] 的值,也就是說陣列第一個元素的值
*a : a[3][4] 可以看成 3個 空間為 4的小陣列,*a, *(a+1), *(a+2) 可以分別代表 這三個小陣列的地址,也可以看做三個小陣列首元素的地址,也就是說 *a 代表 a[0][0]的地址
a :自然可以理解成a[0][0]的地址的地址
3樓:金色潛鳥
宣告 int a[3][4];
那麼語句中 a,*a,**a分別代表什麼呢?
a 代表 陣列的首地址。
*a 代表 &a[0][0] 的地址。
**a 代表 a[0][0] 的 值。
----------
c 語言 語句中 方括號 不是標點符號,而是 運算子!
關於 方括號 的 恆等式:
a[j][i] = (a[j])[i] = ( *(a+j))[i] = * ( *(a+j) + i)
我們把 j=0,i=0 代入 就可看出 **a 代表 a[0][0] 的 值。
a[0][0] 的 地址 是 &a[0][0] 或 &( **a) , 一個&和一個* 運算可以抵消, &( **a) = *a
所以 &a[0][0] 等於 *a
a 是首地址,易理解,從略。
------------------------------#include
int main();
printf("%d %d\n", **a , a[0][0]);
}對比列印結果,你會加對 **a, *a 的 理解。
求問c語言大神: int a[3][4] 那麼a,*a,&a是什麼型別?有什麼區別?
4樓:it圈新鮮事
a是指陣列的首地址,是個地址值;
*a是陣列第一個位置的元素值,是陣列中的數值;
&a不能用於取陣列的地址,本身a就是地址了,不能再次取地址,否則得到的值是錯誤的。但是可以取變數的地址。
5樓:匿名使用者
二維陣列陣列名為陣列指標.
所以a型別為 int (*)[4]
*a就是a[0], 型別為int, 等效於const int *&a是二維陣列指標. 型別為 int (*)[3][4];
6樓:自我程式設計
陣列bai
元素地址是連續的
dua是表示二維陣列的zhi首地址,其值相dao當於專 &a[0][0] 本身是常量指標 不能改變屬其值。
*a是行的首地址 也就是&a[0] 如果你把(*a)+1 那麼值就是 &a[1]
&a值和a一樣,但意義不同,
a表示陣列首地址,a+1就變成第二個元素地址(int 每個元素地址相隔4)
&a表示整個陣列,&a+1就直接跳過整個陣列的記憶體地址空間(相當於跳過了 4*元素個數的地址)
你可以用sizeof(a) 和sizeof(&a) 檢視記憶體大小就知道了
若有定義:int a[3][4],(*p)[4]=a;要引用a[2][3]用(c)
7樓:匿名使用者
我倒,你這個是選擇題,對吧!看了三遍才看懂題意.
解:int a[3][4]; 定意一個二維陣列(*p)[4]=a;這裡就是定義p為指向包含4個元素的一維陣列的指標變數,那麼,你試想一下,二維陣列在記憶體中存放的形式是怎麼樣的? a賦給(*p)[4], a就是a[0][0]的地址, a就是指向零行首列地址的,它的趨勢是指向行的,a+1就是指向一行首列的地址,a+2就是指向2行首列的地址,那麼*(a+2)它也是指向2行零列的地址, 它的趨勢是指向列的,那麼*(a+2)+0與*(a+2)是指向同一個地址,*(a+2)+1就是指向2行1列的地址,*(a+2)+3就是指向2行3列的地址,*(*(a+2)+3)就是a[2][3]
*(p+2)是不是指向二行首行的地址呢? *(p+2)+3是不是指向二行三列的地址呢? 那麼*(*(p+2)+3)就是a[2][3]
8樓:
p是一個指標陣列, 開始時,p指向a[2][4]的首地址(或者a[0][4]的地址),p+1時,指標前移一個單位(即前移一個a[4]大小的位元組),也就是移到a[1][4]的首地址,同理,p+2時,它移到a[2][4]的首址,因為要引用a[2][3]的值,所以取指標值*(p+2),此時*(p+2)是一個一維陣列,即是a[2][0]行標的那行(把二維陣列看成是個矩陳吧,所以是取a[2]這行),
所以直接(*(p+2))[3]就是a[2][3]的值了,換成指標模式就是*(*(p+2)+3)
不知樓主可看得明白,發覺這個問題文字表達自己表達不出自己想說的!
int a0 a a此時a值為多少?如何計算的
a a 分解a a a 此時a為0,由於a 為先執行運算後自加,所以此時的表示式可以看成是a 0 0,這時又涉及到運算子優先順序問題,號為最低等級,所以先執行了a 但是這個a 並不會影響最後的結果了,因為上面的表示式已經出來了,最終a又會被賦值成0 0的結果,所以還是0 a a 未定義的。就是說標準...
若有定義 int a則表示式a a的值為9請高手說明下這個過程
倒黴熊 二維陣列是按行儲存的也就是如下這樣 a 0 0 a 0 1 a 0 2 a 0 3 a 1 0 a 1 1 a 1 2 a 1 3 a 2 0 a 2 1 a 2 2 a 2 3 而a表示的就是a 0 0 所在的地址。所以 a 2 1 a的值為9。 陽光上的橋 請你在草稿紙上畫一個三行 四列...
1ThinkPad E430 3254 AA4怎麼樣,優缺點
1全部這個本市場價大約是4300元 e系列是聯想收購ibm thinkapd以後自行製作的一個系列,做工完全就是一個普通本,和傳統thinkpad是一點關係都沒有,說實話,實際使用感覺有點失望 先說說做工 首先是鍵盤,雖然是時下流行的巧克力鍵盤,但是用的是聯想自己的設計,材質比較生硬,打字的時候觸感...