有以下程序#include<stdio.h> main() { int c[6]={10,20,30,40,50,60},*p,*s; p=a; s=&c[5]; printf("%d\

#include<stdio.h>main(){intc[6]={10,20,30,40,50,60},*p,*s;p=a;s=&c[5];printf("%d\n",s... #include<stdio.h>
main()
{ int c[6]={10,20,30,40,50,60},*p,*s;
p=a; s=&c[5];
printf("%d\n",s-p);
}为什么答案是5?不是50么?
展开
 我来答
听不清啊
高粉答主

2013-09-22 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:2亿
展开全部
你这里输出的是二个指针的地址之差,c[5]与c[0]的地址之差(以int的存储空间大小为单位),所以是5。若想得到所期望的50,就该是二个单元存储的值的差。此时的输出语句应该写为:
#include<stdio.h>
main()
{ int c[6]={10,20,30,40,50,60},*p,*s;
p=a; s=&c[5];
printf("%d\n",*s-*p);
}
tianxiawulang
推荐于2018-04-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2770万
展开全部
1、p=a; 应该是 p=c; 吧?
2、s和p都是int类型的指针,二者相减是数组c第0个元素与第5各元素的下标之差(而不是元素值之差),当然应该是5。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式