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

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

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指地址,因此可以用*取其內容,二者形式不同,都可以一樣用。

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

崖的三種讀音yai,ya和ai意思完全一樣嗎

曉龍老師 崖字只有2種讀音,分別為 y i,崖字的2種讀音意思是完全相同的。崖拼音 y i 部首 山,筆畫 11,五筆 mdff倉頡 umgg,鄭碼 llbb,四角 22214,結構 上下,電碼 1509,區位 4934 筆順 丨 丨 一 一 丨 一 一 丨 一釋義 1.地名 姓氏 方言。2.性格孤...

ai裡面能不能自由變換和ps裡面一樣的那種

ai中有差不多的但是操作上有些不同,具體如下 1.選中需要變形的圖形 2.快捷鍵e 自由變換工具 3.滑鼠左鍵點中需變形的四個節點中的一個出現類似錨點的圖示不鬆手4.再按ctrl鍵移動滑鼠即可自由變形 配合alt和shift可達到不同效果 可以的 用選取工具選區影象後 再按工具條右邊第7個按鈕 或者...

初戀與早戀是一樣的麼

餘詩壘 不一樣的,初戀是第一次但早戀是還沒有到一定的年齡就初戀了或說小學生,初中生,高中生等身體發育還不全並應以學習為主時期的等! 不一樣初戀,顧名思義是說,人的愛情萌發的最初部分。也可以說是人第一次嚐到 情 的滋味,不一定是真正的愛情。比如一個人喜歡上另一個人,他不一定要愛她,但是他對她的喜歡是獨...