下面这段程序输出?

发布于 2022-10-15 07:48:50 字数 247 浏览 22 评论 0

main()

{  

   int a[5]={1,2,3,4,5};  

   int *ptr=(int *)(&a+1);   

   printf("%d,%d",*(a+1),*(ptr-1));

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

感悟人生的甜 2022-10-22 07:48:50

不会吧。。我的第一反应是不会~~~

扶醉桌前 2022-10-22 07:48:50

2,5

吖咩 2022-10-22 07:48:50

能否解释一下,谢谢!{:3_182:}{:3_182:}

未蓝澄海的烟 2022-10-22 07:48:50

*(a + 1) == a[1]
ptr == &a + 1 == a + sizeof(a)/sizeof(a[0]) == a + 5
*(ptr - 1) == *(a + 5 - 1) == *(a + 4) == a[4]

梦在深巷 2022-10-22 07:48:50

楼主对于数组和指针的关系看来还是理解不到位,建议去网上仔细搜索看看。否则,即使你这道面试题看懂了,遇到一个变形的题目,还是一下子就懵了的。
建议从最基本的看起,闻道有先后,不必害羞认为自己这么简单的知识点还要仔细认真的看。

冷…雨湿花 2022-10-22 07:48:50

我就纳闷了,a是一个地址,是一个常量,是1的地址;那&a表示对这个地址再取地址,这是什么意思???????

无名指的心愿 2022-10-22 07:48:50

数组名绝非一个地址常量那么简单。
可以看看下面的文档
http://ishare.iask.sina.com.cn/f/7859661.html

岁月静好 2022-10-22 07:48:50

关注!~

高速公鹿 2022-10-22 07:48:50

2,5

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文