下列程序的输出结果是 -10 。 int c[ ]={10,0,-10}; int *k=c+2; printf(“%d”,*k--); 帮忙分析一下吧。

 我来答
dhfever
推荐于2017-10-31
知道答主
回答量:6
采纳率:0%
帮助的人:11.3万
展开全部
1: int c[ ]={10,0,-10};
这是定义了一个一维数组C长度为3(在这里注意长度strlen与大小sizof是不一样的,前一个是说数组中的元素个数,后一个是说元素在内存中占的字节大小)数组元素为10,0,-10。
2:int *k=c+2; printf(“%d”,*k--);
定义了一个整型指针k并将c+2(这是数组指针的移位,移到后两位-10,注意数组名代表数组的首地址)的地址赋值给k。而printf的格式字符串中的(*k--)在这里你要清楚*k--的运算。先算(*k)然后再使k指向的地址减一。因此先算*k的值并打印出来。
大哥给点分吧 纯手打的 不明白的话还可以再问我哈!呵呵
White_MouseYBZ
2017-10-31 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6574万
展开全部
k==c+2了,就是k指向了-10。输出是*k--,就是输出*k,再让k--,这*k不就是-10吗?最后让k指向了0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fkf123525
2010-10-25 · TA获得超过117个赞
知道答主
回答量:271
采纳率:0%
帮助的人:146万
展开全部
输出结果是-10
k=c+2
所以k指向了-10
输出只有因为是后减减的关系 所以先输出了-10 在减1的
不知道lz啊懂了?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱无悔是假
2010-10-25 · TA获得超过168个赞
知道答主
回答量:64
采纳率:0%
帮助的人:58.8万
展开全部
*k=c+2实际是为c[2];*k--先使用,后减1;即先输出c[2]值后再对k操作自减的。
楼主不妨做下printf(“%d”,*--k);的实验,看出来啥。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式