C语言基础问题

inta=5,b=7,c;c=a+++b;//c为多少?说明原因... int a = 5, b = 7, c;
c = a+++b;
//c为多少?说明原因
展开
 我来答
果乐kaixin
2013-08-23
知道答主
回答量:32
采纳率:0%
帮助的人:20.6万
展开全部
(a++)+b 和a+++b两个表达式一样的

a++,++在后面的时候,先保留a的运算,a全部运算完后a才自加

对于这个题目,a++,此时a=5,不做运算
下一个字符是b没有模块运算
这时c的全部运算结束
a为5,b为7 所以结果是c=5+7=12.
此时才开始计算表达式中的a++
然后a变为6

最后的值就是
a=6
b=7
c=12

希望对你有帮助。
补充:
也就是c=a+++b
等同于c=a+b a++
祖立志
2013-08-23 · TA获得超过1797个赞
知道小有建树答主
回答量:1280
采纳率:33%
帮助的人:1266万
展开全部
会报编译错误,运算符需要用空格隔开,空格的位置不同答案会不一样
实际程序中永远不要这么写,让人难以理解。善用括号吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百思不De骑姐
2013-08-23 · TA获得超过112个赞
知道答主
回答量:211
采纳率:0%
帮助的人:159万
展开全部

c为12,c=a+++b;拆开就是c=a+b;a++;

求采纳 谢谢

追问
为什么不拆为 c=a+(++b) ?
追答
这个我也不知道,我是根据结果得到的这个结论。
哦 下班了
又是周末啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烈鹰之翼
2013-08-23 · TA获得超过155个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:100万
展开全部
目测为12,因为根据运算符的优先级,单目运算符优先与双目运算符,所以先是++b,也就是8,然后再加a=5,就是12
更多追问追答
追问
5+8=12?
追答
啊,sorry,应该显示a++,再是+b,所以a是6,b是7,c是12.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1019122157_
2013-08-23 · 超过29用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:62.6万
展开全部
本身写法就错了,编译器会自动从左向右,a++后执行+++ 语法错误,你的意思大概是(a++)+(++b)把? 这样答案是13。
追问
不是我的意思?我就是想知道答案,他不会报错,你看第一条回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhanglina4241
2013-08-23
知道答主
回答量:11
采纳率:0%
帮助的人:1.6万
展开全部
c为12,原因是先进行a+b的运算,在进行a++的运算。如果c=++a+b,则结果是13.原因是先进行a++,在进行a+b运算。
记住有++符号时,在字母前面就先运算,在后面就后运算
更多追问追答
追问
为什么不拆为 c=a+(++b) ?
追答
运算符结合时有方向的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式