中易网

main() { int a[5] = {1,2,3,4,5}; int *ptr =

答案:3  悬赏:10  
解决时间 2021-03-07 10:36
main()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int*)(&a+1);

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

} !输出什么,还有解释!帮我看看!
最佳答案
我看了其它回答后为你做的补充。&a为取数组名的地址,即为整个数组的地址,它的类型为数组类型,(int*)(&a+1)将其强制转换成整型指针赋值给*ptr,并指向了数组界外,最后用*(ptr-1)又指向了界内的最后一个元素5。假如:
int a[8] = {1,2,3,4,5,6,7,8};
int *ptr = (int*)(&a+1);
printf("%d %d" , *(a+1), *(ptr-1) );
结果就是2 8
全部回答
输出2 5 此题考的是穿c语言中的指针
这题的关键在int *ptr=(int *)(&a+1);这一句上,&a表示取得数组a存储区域的首地址,再加1表示数组a存储区域的后的地址,这就使得ptr指针指向数组的最后一个元素后面的那个存储单元的地址,而ptr减1后,再进行数据访问,则访问的是ptr指针的前一个存储单元的值,所有最后的答案是2,5
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有明星戴过无框眼镜啊
嵊州市户口落户问题,希望知道的帮帮忙!谢谢
茶餐厅在周年庆之际做什么活动最能够吸引顾客
开通基金账户在网上能不能开通呢?
两个人结婚后作些什么啊?怎么打算以后的生活
如果一个男人让一个女人送他睡衣代表什么意思
QQ华夏挖矿多少级显示坐标
向阳大酒店地址在哪,我要去那里办事
为什么本国对外国的债务减少属于"资本流出 请
(315)化学(农) (415)动物生理学与生物化学
豪爵摩托在什么地方啊,我要过去处理事情
我最近的学习态度作文
高中毕业四年了,如何打印高考成绩?
西安市2015年养老保险集中缴费时间是什么时候
电动车表盘里面有个雨伞的图标,是什么意思
推荐资讯
支付宝为什么会自动开通快捷支付宝
联想黄金斗士note8可以root吗??
非诚勿扰是娱乐节目吗?有些女嘉宾是职业相亲
氢氧化钠可以除去塑料上的沥青么?
有1种乐器,可以发出2种声音,1种声音为“哆
金华市婺城区罗店镇上张家村村民委员会地址有
我的外祖母得了老年痴呆症,整天一个人在自说
日语读音 华东 の 発音は 何ですか
小小动物园在哪里啊,我有事要去这个地方
高程测量中的读数是什么
价值1万多的活动岗亭要入固定资产吗,折旧年
窿第6画是什么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?