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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2330 | 回復: 7
打印 上一主題 下一主題

[C] 多維數(shù)組和指針的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-05-06 00:46 |只看該作者 |倒序瀏覽
#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輸出后其實本來就是一個地址 而*pp取值后還是一個地址 而且值相等

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

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

請指教一下

[ 本帖最后由 a8e8c1ca5b 于 2008-5-6 00:49 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2008-05-06 01:11 |只看該作者
int a[10]
a     就是代表這個數(shù)組的第一個元素的地址.
&a   就是代表這整個數(shù)組的地址, 只是它們的值是一樣的.
就好比 int a[10][4]
a+1        表示的是a[1]的地址, 即&a[1]
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實際上它們的值也是一樣的.

論壇徽章:
0
3 [報告]
發(fā)表于 2008-05-06 01:23 |只看該作者

回復 #2 xiaozhu2007 的帖子

good explanation

另外,樓主也可以看看譚浩強那本書的二維數(shù)組那一節(jié),也講得不錯。關鍵在于類型不一樣。

論壇徽章:
0
4 [報告]
發(fā)表于 2008-05-06 01:24 |只看該作者
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實際上它們的值也是一樣的.

這個就是問題關鍵啊  *(a+1)和a+1的值是一樣的 上面說的我都明白

不過對a+1取值 這個步驟怎么理解?



我只了解指向一個數(shù)組的首地址  還沒接觸過指向整個數(shù)組的概念 我那本書沒講 ...

[ 本帖最后由 a8e8c1ca5b 于 2008-5-6 01:26 編輯 ]

論壇徽章:
0
5 [報告]
發(fā)表于 2008-05-06 01:37 |只看該作者
原帖由 a8e8c1ca5b 于 2008-5-6 01:24 發(fā)表
*(a+1)   表示的是a[1][0]的地址, 即&a[1][0] or a[1], 但是實際上它們的值也是一樣的.

這個就是問題關鍵啊  *(a+1)和a+1的值是一樣的 上面說的我都明白

不過對a+1取值 這個步驟怎么理解?



我只了解 ...




對于int a[10][20]來說,其實你可以把它看成是一個一維數(shù)組,數(shù)組有10個元素,其每個元素都是一個int[20]的類型。
和平時所見的int b[10]相類似,b+1此時指向的是b[1]的地址,&b[1]。
同理a+1此時指向的就是其a[1]的元素的首地址。即&a[1],
但是此時a[1]的類型是一個int[20]的類型,所以其首地址,即&a[1]的值也就是其第一個元素的地址,即&a[1][0]的值。數(shù)值上是相同的。不過前者是以int[20]為單位,后者是以一個int類型為單位而已。

論壇徽章:
0
6 [報告]
發(fā)表于 2008-05-06 01:39 |只看該作者
好象明白了一點  如果一個數(shù)組的元素是數(shù)組 那么取這個元素的值 的意思 就是取這個數(shù)組的地址?
可能這點我沒理解

論壇徽章:
0
7 [報告]
發(fā)表于 2008-05-06 10:00 |只看該作者
原帖由 a8e8c1ca5b 于 2008-5-6 01:39 發(fā)表
好象明白了一點  如果一個數(shù)組的元素是數(shù)組 那么取這個元素的值 的意思 就是取這個數(shù)組的地址?
可能這點我沒理解

有些東西只有在用它的時候才會真正明白它要怎么樣以及用的時候需要注意的問題,必要的錯誤是無法避免的

論壇徽章:
0
8 [報告]
發(fā)表于 2008-05-06 15:57 |只看該作者
我對數(shù)組指針這塊也模模糊糊的,我也要回去看看譚老的那本書了,學習了!
發(fā)現(xiàn)了一句關鍵:數(shù)組名代表數(shù)組首元素的地址!

[ 本帖最后由 zszjxh 于 2008-5-7 11:21 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP