main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p ; p=a;pri8ntf("%d",*p+9); } 次程序的结果为什么是9?

请您帮忙详细解答,谢谢!!... 请您帮忙详细解答,谢谢!! 展开
 我来答
天云小店
推荐于2017-10-03 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:786万
展开全部
我运行出来结果是10 环境是VS2008

int a[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d",*p+9);
追问
您能详细说一下运算过程吗?谢谢!!
追答
p=a就是将数组a的首地址赋给p
然后*p指向数组a中第一个元素 1
由于指针运算符(*)的优先级高于+,所以*p+9等价于(*p)+9 = 1+9 = 10
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ed443
2015-03-10
知道答主
回答量:37
采纳率:0%
帮助的人:13.4万
展开全部
这个结果对吗?应该是10才对。
追问
10是对的,我打错了。您能给详细说一下程序的运算过程吗?谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式