c语言数组与指针

[复制链接]
查看11 | 回复2 | 2010-2-26 17:29:54 | 显示全部楼层 |阅读模式
"这一章说a[0]+1和*(a+0)+1都是&a[0][1]"这里的a应该是二维数组吧,所以*(a+0)+1不是值,而是地址,同理a[0]+1也一样
回复

使用道具 举报

千问 | 2010-2-26 17:29:54 | 显示全部楼层
你应该是认为*(a+0)是值,所以*(a+0)+1也是值,对吧?其实不是,你上面不是都说了嘛,a[0]和*(a+0)是等价的,二维数组中也是一样,*(a+0)表示a[0][],就是数组的第二维
回复

使用道具 举报

千问 | 2010-2-26 17:29:54 | 显示全部楼层
首先知道单单的a是个数组首地址 那么*a=a[0]那么a[0]的特殊性就在于它即是一个变量又是一个数组的首地址 那么我们可不可以认为a[0]+1就是一个地址呢 可以 因为a数组是二维数组(我们在讨论二维的) 在讨论二维数组时a[0]+1可以认为是地址 也就是&a[0][1] 那么就像你不明白的*a=a[0]所以在二维数组中*a+1=a[0]+1是成立的 因为他们都表示二维数组的地址////////我这么说你可能糊涂,看书上的二维数组的定义,如a[8][8]这样就定义了一个9行9列的数组a然而a[0]就是第一行的地址 //////
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行