*(*(a+i)+j); *(a[i]+j); *(a+i)[j]; 前两者等价,但是第三个为什么与前两个不一样?求详细的解释。

[复制链接]
查看11 | 回复3 | 2012-4-23 22:15:08 | 显示全部楼层 |阅读模式
因为*(a+i)[j];的意思是 *((a+i)[j]),(a+i)先和[j]结合的,结果 就是*(a[i+j])也就是 a[i+j][0]...
回复

使用道具 举报

千问 | 2012-4-23 22:15:08 | 显示全部楼层
前两个都是表示 i行 j 列元素的值。 第三个 *(a+i)表示 第i行的0列的首地址。 所以是不一样的、...
回复

使用道具 举报

千问 | 2012-4-23 22:15:08 | 显示全部楼层
前两个代表二维数组a[j]的值, 而*(a+i)[j],代表a[i+j][0]的值,就是先算后面的,再取指针。相当于 *(a+i+j)....
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行