大神二维数组&a[1]可以是&*(a+1)还是*(&a+1)

weixin_42298030 2018-06-04 05:36:43
二维数组中&a[1]可以看成首元素地址a向右偏移1位a+1,然后间接引用得到第二个元素的首地址*(a+1),然后再取它首地址的地址&(*(a+1))吗?
下面这个程序结果为什么是1,4,8啊?

int main()

{

int a[5][2] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

int* p = a;

int (*p2)[2] = &a[1];

++p;

++p2;

printf("%d\n", *p);

printf("%d\n", **p2);

printf("%d\n", p2[1][2]);

return 0;

}

...全文
1106 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2018-06-04
  • 打赏
  • 举报
回复
a[i] 等同于 *(a+i) a+i 等同于 &a[i]

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧