ai與a是一樣的地址,為什麼

2021-03-03 22:11:57 字數 2816 閱讀 6152

1樓:匿名使用者

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

2樓:匿名使用者

你內個說法有點錯誤

c++二維陣列指標中

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

3樓:匿名使用者

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

為什麼c語言中*(a+i)+j能表示a[i][j]的地址

4樓:

int a[3][4]; //假設定義一個3行4列的二維陣列,所謂二維陣列就是陣列的陣列

a[0]、a[1]、a[2]是陣列a的元素,而這個元素是陣列,而不是我們通常認為的基本資料型別的資料

所以*(a+i)就是獲取陣列a中第i個元素,等價於a[i],而a[i]本身又是一個包含有4個int型數值的陣列,a[i]是這個一維陣列的陣列名,我們知道陣列名的本質是一個地址,是陣列首元素地址,所以

*(a+i)+j就是表示下表第i行的第j個元素的地址了。所以,

*(a+i)+j表示的含義是元素a[i][j]的地址,也可以用a[i]+j來表示。

5樓:聽不清啊

int a[2][3]=;

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

以上的引用能夠輸出60

因為a是二維陣列名,所以它是指向指標的指標(二級指標)。

*(a+1)就是a[1],它是一個一維陣列,也是一維陣列的首地址(指向一維陣列首元素的指標)。*(a+1)+2就是a[1][2]的地址,*(*(a+1)+2)就是a[1][2]。

6樓:匿名使用者

*(a+0)取出a[0]的值

a[0]的元素又是一個一維陣列

因此*(a+0)取出的就是這個一維元素的首地址那麼*(a+0)+0表示: 一維陣列a[n]中, a+0陣列元素a[0]的地址

*(a+0)+1表示一維陣列的1號陣列元素的地址

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

7樓:鈄運旺登子

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

8樓:匿名使用者

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

指標指向二維陣列,a+i表第i行首地址,為什麼加了個取內容符的*(a+i)還表示第i行首地址

9樓:匿名使用者

書上有解釋啊。對於一位陣列a來說,a[i]和*(a+i)等價,因此對於二維陣列內b來說,b[i]和*(b+i)等容價,但他們的值都是&b[i][o]。也就是說,二維陣列的指標某些表達是從一維陣列演變來的。

別忘了二維陣列是可以看作一個元素為陣列的一維陣列。望採納

10樓:太原綁哥

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

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

11樓:含苞

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

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

12樓:隔壁的蟲子

「*(a+i)與a[i]是一樣的地址」這裡的意思你理解錯了,本來的意思是*(a+i)與a[i]這兩個值在記憶體中的物理位置(即地址)是相同的,而不是說*(a+i)與a[i]都是地址!

13樓:匿名使用者

*(a+i)與a[i]是一樣的地址,應該是說他們在記憶體中的地址是一樣的,沒錯!

為什麼.一個陣列元素a[i]與a+i的表示等價?

14樓:匿名使用者

a是儲存的是陣列首地址,*a指向的就是陣列第一個元素a[0],所以*(a+i)的地址和a[i]的地址一樣。陣列和指標在一定程度上本質是一樣的。

15樓:

只有a是二維陣列時,a[i]與a+i才等價,他們都表示第i行的首地址,且型別相同。當a為一維陣列時,他們並不等價。

16樓:司燕舞景鑫

不等價吧

*(a+i)與a[i]等價

因為可以理解陣列是特殊的地址常量

a代表a[0]的地址

a+1就是地址+1

是a[1]……

什麼是不一樣的愛,喜歡與愛不一樣

從剛出生開始,我們就被愛包圍著,父母的愛,老師的愛,同學的愛,朋友的愛。愛充滿整個世界,愛滋潤我們成長,愛讓我們面對種種困難。在眾多的愛中,有一種無界限 無論認不認識,無論是否有血緣關係的陌生人的愛。喜歡與愛不一樣?喜歡歡一個人,你不會想到你們的將來。愛一個人,你們常常在一起憧憬明天。喜歡一個人,在...

父母戶籍地址與身份證地址不一樣怎麼辦?要證明麼

你好!看了你的描述,父母戶籍地址與身份證地址不一樣,並不代表要證明,不會影響,不會帶來其他問題的,只要戶籍與身份證的姓名,性別,出生年月資訊不變,只有地址不一樣,沒有任何影響,如果還不放心,可以帶戶口本,到當地派出所報身份證遺失,按照戶籍地址重新辦理身份證,這樣戶籍與身份證地址一致了,完全沒問題,祝...

身份證上的地址與現在的不一樣,可以更換嗎

身份證上的地址與現在的不一樣的可以在所在公安機關進行更換。根據 中華人民共和國居民身份證法 第二十一條 公民申請領取 換領 補領居民身份證,應當繳納證件工本費。居民身份證工本費標準,由 主管部門會同 財政部門核定。收費標準如下 1.公安機關對申領 換領第二代居民身份證的居民收取工本費每證20元,對丟...