VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 628|回复: 1

关于指针的问题

[复制链接]
31_avatar_middle
最佳答案
0 
在线会员 发表于 2020-10-22 11:55:02 | 显示全部楼层 |阅读模式
        int a[4][3] = { 1, 2, 3, 4, 5,6,7,8,9,10,11,12 };
        cout << *(a+1) << endl;
        cout << a+1 << endl;

为什么输出结果是两行00B6F718?

a+1是a这个二维数组第2行的首地址,那么*(a+1)不就是第2行首个元素吗,也就是4。为什么cout << *(a+1) << endl输出的不是4,而是地址呢?




上一篇:为什么字符型指针和整形指针得到的结果不一样?
下一篇:请教十六进制0x4C如何转换成0xA3 0xCC
29_avatar_middle
最佳答案
0 
在线会员 发表于 2020-11-27 16:23:09 | 显示全部楼层
a+1是a这个二维数组第2行的首地址。
但a+1本身也是一个一维数组, 所以也是一个地址。表示的是第二行的第一个元素的地址。

a+1 == &a[0]+1 == &a[1]   记住这个值!!!
*(a+1) == *(&a[1]) == a[1] == &a[1][0]
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-24 22:47

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表