a i 與a與(a i)是一樣的地址,為什麼

時間 2021-09-11 22:25:28

1樓:匿名使用者

呵呵,你錯了,對於陣列a[i],a表示該陣列的起始地址,即a=&a[0], 所以 *(a+i)表示a+i指向的陣列元素,*(a+i)=a[i]。

對於二維陣列,&a[0][0]就不能用a表示了,而是用a[0]+0表示,二維陣列可以看成一維陣列,不過它的每一個陣列元素又是一個一維陣列,比如a[3][4]的第一行元素a[0][0],a[0][1],a[0][2],a[0][3]可以看成是一維陣列a[0]的4個元素,即把a[0]看成一個陣列名。故二維陣列a[i][j]的地址可以表示成a[i]+j或

*(a+i)+j。再懂了吧。

2樓:

不好意思 我都3年沒搞c了

忘了~~~呵呵

3樓:冀來福鳳燕

*(a+i)與a[i]是一樣的地址應該是說他們指向的都是同一個記憶體單元,也就是說*(a+i)指向的值的地址,與a[i]指向的值的地址都是一樣的。也就是說他們得到的值是一樣的。

這裡不是說他們得到的是一個記憶體變數的地址還是記憶體變數的值,只是說明他們是一樣的,得到的值一樣,換句話說就是一樣的地址。(一樣的地址難道值會布一樣??)

4樓:巨集鬱米含靈

這麼說吧,*(a+i)與這個地址存的引數等效,*的意思是根據指標這個地址調出這個地址上的值。那麼,說是地址也沒有錯,只能說不是很嚴謹。

5樓:匡逸完玉韻

你內個說法有點錯誤

c++二維陣列

指標中a+i

表示陣列a的第i行第0列元素的地址

*(a+i)表示陣列a的第i行第0列元素的值估計你內個是書上印錯了,教科書各種錯,例題**也各種錯,你得自己根據定義去理解,它只是說個大概意思

6樓:薊精雀安琪

不是的,給*p賦值,並不是直接賦給它數值,而是賦給他一個地址,比如說:*p=&i,那麼就給*p賦給了i的記憶體地址,系統在讀取到記憶體地址之後再讀出該記憶體所存的數值,而*p的記憶體地址等於i的記憶體地址,所以*p的數值與i的數值是一樣的,雖然

在賦值語句之後,*p等價於i,

但是不能說直接把數值賦了*p。*p=&i的含義是變數i的地址作為一個資料存放在指標變數p所對應的記憶體單元中。

*(a+i)與a[i]是一樣的地址,為什麼?

7樓:匿名使用者

這麼說吧,*(a+i)與這個地址存的引數等效,*的意思是根據指標這個地址調出這個地址上的值。那麼,說是地址也沒有錯,只能說不是很嚴謹。

8樓:匿名使用者

你內個說法有點錯誤

c++二維陣列指標中

a+i 表示陣列a的第i行第0列元素的地址*(a+i)表示陣列a的第i行第0列元素的值估計你內個是書上印錯了,教科書各種錯,例題**也各種錯,你得自己根據定義去理解,它只是說個大概意思

9樓:匿名使用者

不是的,給*p賦值,並不是直接賦給它數值,而是賦給他一個地址,比如說:*p=&i,那麼就給*p賦給了i的記憶體地址,系統在讀取到記憶體地址之後再讀出該記憶體所存的數值,而*p的記憶體地址等於i的記憶體地址,所以*p的數值與i的數值是一樣的,雖然 在賦值語句之後,*p等價於i, 但是不能說直接把數值賦了*p。*p=&i的含義是變數i的地址作為一個資料存放在指標變數p所對應的記憶體單元中。

c語言中*(a+i)與a[i]是等價的。那麼*(a+i)是值還是地址?

10樓:匿名使用者

*(a+i)就是值了

*(*(a+i)+j)才和a[i][j]等價

c語言中a+i是地址嗎,書上說a+i是a[i]的指標,既然這樣,那麼*(a+i)為什麼還是

11樓:

a+i其實就是&a[i],肯定是地址

*(a+i)其實就是a[i],如果a是二給陣列的陣列名,a[i]就肯定是地址(等同於&a[i][0]),如果a只是一維陣列(指標陣列除外)的陣列名,a[i]就不是地址(原因是:二維陣列可以看作是多個一維陣列組成,即陣列的陣列)

*(a+i)+j就是&a[i][j],如果陣列a是二維陣列那就肯定也是地址啦

a[i][j]則是表示為*(*(a+i)+j)

12樓:匿名使用者

a應該是指的陣列名字吧

你首先應該知道陣列名字本身就是地址了

a+i是說a的地址向後在移動i個位置

也就是a[i]

a是指的陣列的首地址,開頭的位置

*(a+i) 也就是*a[i] 也就是a[i]的地址,只是這個地址離首地址偏移了i位置

再加上j 就是 a[i][j]地址

*(a+i)+j是針對二維陣列來說的,也可以說是特殊的一維陣列。

13樓:賽罡諫陽澤

是地址,你要取值是要*(

*(a+i)+j)的

*(a+i)其實就是a[i][0]的地址

二維陣列中,a+i表示第i行的地址,那為什麼*(a+i)也表示第i行的地址。

14樓:鈄運旺登子

二維陣列每行的首地址分別為a[0],a[1]……a[i],*(a+0)是a[0],*(a+1)是a[1]……*(a+i)是a[i]。a+i是地址,但不代表第i行的首地址a[i]。

15樓:匿名使用者

a+i和*(a+i)的值相同沒錯,但它們的型別不一樣,代表的意義也不一樣。a+i還是2維指標,*(a+i)則是一維指標。編譯器對它們的解析和操作是不一樣的。

c語言中二維陣列的引用和地址有什麼區別嗎?比如a[i]地址&a[i],a+i,p+i,引用a[i],*(a+i)(這不應該是地址嗎

16樓:焚書煮麵帥

你這種情況比較複雜!一個陣列

名本身是一個常量地址,比如陣列a[10],a就是該陣列在記憶體分配空間的起始地址。要引用陣列中各個元素。a[i]是陣列專用的方法,它本身就是指a往後偏移i個長度記憶體空間裡存放的內容,因此用&取地址就變成了該內容對應的地址;也可以用*(a+i),a+i指從地址a偏移i個長度(此長度不是位元組,取決於陣列儲存的元素型別)的地址(注意此時它不是指裡面的內容),因此加上*以取到裡面的內容。

也就是說a[i]指內容,因此可以用&取其地址;而a+i指地址,因此可以用*取其內容,二者形式不同,都可以一樣用。

我是這樣理解的,僅供參考。

c語言中二維陣列的引用和地址有什麼區別嗎?比如a[i]地址&a[i],a+i,p+i,引用a[i],*(a+i)(這不應該是地址

17樓:處男者

你這種情況比較複雜!一個陣列名本身是一個常量地址,比如陣列a[10],a就是該陣列在記憶體分配空間的起始地址。要引用陣列中各個元素。

a[i]是陣列專用的方法,它本身就是指a往後偏移i個長度記憶體空間裡存放的內容,因此用&取地址就變成了該內容對應的地址;也可以用*(a+i),a+i指從地址a偏移i個長度(此長度不是位元組,取決於陣列儲存的元素型別)的地址(注意此時它不是指裡面的內容),因此加上*以取到裡面的內容。

也就是說a[i]指內容,因此可以用&取其地址;而a+i指地址,因此可以用*取其內容,二者形式不同,都可以一樣用。

我是這樣理解的,僅供參考。

ai是什麼軟體?ai是個什麼軟體,和PS一樣麼

adobe illustrator是adobe系統公司推出的基於向量的圖形制作軟體。最初是1986年為蘋果公司麥金塔電腦設計開發的,1987年1月釋出,在此之前它只是adobe內部的字型開發和postscript軟體。作為一款非常好的向量圖形處理工具,該軟體主要應用於印刷出版 海報書籍排版 專業插畫...

ai裡可以像ps一樣調整總體色調的深淺

小青魚已有觀小音 ai不是智慧的思維嗎,對於修行的人來說,不是電腦想讓我們知道啥才讓我們知道啥,呀,細思極恐!這是人類自己創造的統治者嘛咩! 綿羊西普 可以的,但是不像photoshop裡面的那麼強大,也就那麼幾個選項。飽和度,還有就是色彩平衡,還有就是重新著色圖稿,前面兩個跟photoshop的類...

AI混合模式怎用的?就是和CDR的調和一樣的,教下我怎用AI做下圖?詳細點謝謝大神

我學過一點,這個圖,你可以吧彩色塊,編成一個組,然後設定其位置在最頂層,就可以放在下面這個矩形的上面了,ctrl 向上移動一層 ctrl 向下移動一層 ctrl shift 移動到頂層 ctrl shift 移動到底層 不知道這樣對不對,你試試看吧 ai和cdr的pantone色號一樣為什麼轉成四色...