亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 多維數(shù)組和指針的問(wèn)題 [打印本頁(yè)]

作者: a8e8c1ca5b    時(shí)間: 2008-05-06 00:46
標(biāo)題: 多維數(shù)組和指針的問(wèn)題
#include <stdio.h>

int main(void) {
char arr[3][6]={"12345","23456","34567"};

char (*pp)[6];
pp=arr;

printf("%xd\n",pp);
printf("%xd\n",pp+1);
printf("%xd\n",pp+2);

printf("%xd\n",*pp);
printf("%xd\n",*pp+1);
printf("%xd\n",*pp+2);
printf("\n");

return 0;
}


pp輸出后其實(shí)本來(lái)就是一個(gè)地址 而*pp取值后還是一個(gè)地址 而且值相等

只是區(qū)別在于它們+1 +2的偏移量不同 pp+1的偏移量是6個(gè)char長(zhǎng)度   *pp+1的偏移量是1個(gè)char長(zhǎng)度???

對(duì)于一個(gè)指向一個(gè)數(shù)組的指針 取值的意思是不是還是獲得相同的地址 但偏移量不同 這樣就可以控制訪問(wèn)子元素?

請(qǐng)指教一下

[ 本帖最后由 a8e8c1ca5b 于 2008-5-6 00:49 編輯 ]
作者: xiaozhu2007    時(shí)間: 2008-05-06 01:11
int a[10]
a     就是代表這個(gè)數(shù)組的第一個(gè)元素的地址.
&a   就是代表這整個(gè)數(shù)組的地址, 只是它們的值是一樣的.
就好比 int a[10][4]
a+1        表示的是a[1]的地址, 即&a[1]
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實(shí)際上它們的值也是一樣的.
作者: scutan    時(shí)間: 2008-05-06 01:23
標(biāo)題: 回復(fù) #2 xiaozhu2007 的帖子
good explanation

另外,樓主也可以看看譚浩強(qiáng)那本書(shū)的二維數(shù)組那一節(jié),也講得不錯(cuò)。關(guān)鍵在于類型不一樣。
作者: a8e8c1ca5b    時(shí)間: 2008-05-06 01:24
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實(shí)際上它們的值也是一樣的.

這個(gè)就是問(wèn)題關(guān)鍵啊  *(a+1)和a+1的值是一樣的 上面說(shuō)的我都明白

不過(guò)對(duì)a+1取值 這個(gè)步驟怎么理解?



我只了解指向一個(gè)數(shù)組的首地址  還沒(méi)接觸過(guò)指向整個(gè)數(shù)組的概念 我那本書(shū)沒(méi)講 ...

[ 本帖最后由 a8e8c1ca5b 于 2008-5-6 01:26 編輯 ]
作者: scutan    時(shí)間: 2008-05-06 01:37
原帖由 a8e8c1ca5b 于 2008-5-6 01:24 發(fā)表
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實(shí)際上它們的值也是一樣的.

這個(gè)就是問(wèn)題關(guān)鍵啊  *(a+1)和a+1的值是一樣的 上面說(shuō)的我都明白

不過(guò)對(duì)a+1取值 這個(gè)步驟怎么理解?



我只了解 ...




對(duì)于int a[10][20]來(lái)說(shuō),其實(shí)你可以把它看成是一個(gè)一維數(shù)組,數(shù)組有10個(gè)元素,其每個(gè)元素都是一個(gè)int[20]的類型。
和平時(shí)所見(jiàn)的int b[10]相類似,b+1此時(shí)指向的是b[1]的地址,&b[1]。
同理a+1此時(shí)指向的就是其a[1]的元素的首地址。即&a[1],
但是此時(shí)a[1]的類型是一個(gè)int[20]的類型,所以其首地址,即&a[1]的值也就是其第一個(gè)元素的地址,即&a[1][0]的值。數(shù)值上是相同的。不過(guò)前者是以int[20]為單位,后者是以一個(gè)int類型為單位而已。
作者: a8e8c1ca5b    時(shí)間: 2008-05-06 01:39
好象明白了一點(diǎn)  如果一個(gè)數(shù)組的元素是數(shù)組 那么取這個(gè)元素的值 的意思 就是取這個(gè)數(shù)組的地址?
可能這點(diǎn)我沒(méi)理解
作者: ruoyisiyu    時(shí)間: 2008-05-06 10:00
原帖由 a8e8c1ca5b 于 2008-5-6 01:39 發(fā)表
好象明白了一點(diǎn)  如果一個(gè)數(shù)組的元素是數(shù)組 那么取這個(gè)元素的值 的意思 就是取這個(gè)數(shù)組的地址?
可能這點(diǎn)我沒(méi)理解

有些東西只有在用它的時(shí)候才會(huì)真正明白它要怎么樣以及用的時(shí)候需要注意的問(wèn)題,必要的錯(cuò)誤是無(wú)法避免的
作者: zszjxh    時(shí)間: 2008-05-06 15:57
我對(duì)數(shù)組指針這塊也模模糊糊的,我也要回去看看譚老的那本書(shū)了,學(xué)習(xí)了!
發(fā)現(xiàn)了一句關(guān)鍵:數(shù)組名代表數(shù)組首元素的地址!

[ 本帖最后由 zszjxh 于 2008-5-7 11:21 編輯 ]




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2