永发信息网

#include <stdio.h> void main () { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&

答案:4  悬赏:10  手机版
解决时间 2021-02-09 13:15
#include <stdio.h>
void main ()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf ("%d,%d\n\n",*(a+1),*(ptr-1));
}

各位大虾能帮小弟详细解释一下解题过程呢?小弟在此谢过了!
最佳答案
这题的关键在int *ptr=(int *)(&a+1);这一句上,&a表示取得数组a存储区域的首地址,再加1表示数组a存储区域的后的地址,这就使得ptr指针指向数组的最后一个元素后面的那个存储单元的地址,而ptr减1后,再进行数据访问,则访问的是ptr指针的前一个存储单元的值,所有最后的答案是2,5
全部回答
&a是a[0]的地址,所以&a+1是a[1]的地址 ptr是指针,其初值为a[1], *(a+1)的值为a[1], 故*(ptr-1)为a[0]
输出2,1 *(a+1)是指取数组a首地址加一的地址上的内容; *ptr指向&a+1,所以值为2; *(ptr-1)是指向数组a的首地址 楼上说的对,惭愧
地址 0-3 4-7 8-11 12-15 16-19 20-23 数值 1 2 3 4 5 &a+1 就是地址为20的地方 *ptr1[-1]就是20-4=16这个地方 一个int 占用4个地址 (int)a+1 跟a+1不一样 前者地址为1 后者为4 所以*ptr2表示的是指向地址为1的指针地址
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刺图男装地址好找么,我有些事要过去
茗园阁酒业在什么地方啊,我要过去处理事情
硫原子的最外层电子数为6,易得到2个电子为什
侠盗飞车罪恶都市超级作弊器VICE,为啥说gta-v
听说鹏程论文网不错啊?同学们总是说起,大家
产后收腹什么时候开始好
家电是什么?手机算家电吗拜托了各位 谢谢
小鹿狗喜欢吃什么
丁家庄子卫生室地址在什么地方,想过去办事
m的3次方-2m的2次方-4m+8m因式分解题 可以的
乌鲁木齐市第十四小学在哪里啊,我有事要去这
有一条800米的公路,原计划20天修完,实际16天
20年婚姻不想再过了
暑假带孩子去哪个国家旅游比较好
艾米娜地址在什么地方,想过去办事
推荐资讯
面试的时候需要化淡妆吗?
我能看女人那阳道里长的啥祥式的吗我能看的到
社区居民的健康资料有(  )。A.不同年龄人
【儿童心理学作业】什么是儿童心理学发展的生
莒南临沂翔云宾馆地址在什么地方,想过去办事
中国建设银行溧阳阳光支行这个地址在什么地方
海沧区文化中心地上停车场一(出入口)地址有知
淘宝买衣服别人代买的不合适可以拒收吗
你好我是小高老婆可以找你一下吗
中国石化小池加油站这个地址在什么地方,我要
汉庭酒店(临沂大山路店)地址在什么地方,想过
一个40w电感镇流器拖2支20瓦光管怎样接线
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?