C语言中a=1,a=a+++1,a+++1这两个有什么区别,前者值是3,后者是2

 我来答
信书雁范月
2019-08-21 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:576万
展开全部
a=a+++1:先a++,a变为2
(即这个a++完了以后,a已经变成了2),然后开始2+1,然后再将2+1赋给a;
而a+++1:则是先a++,即a变成了2,然后加1,因为加1后并没有赋值给回a,所以a还是2
a++其实差不多是a=a+1的缩写,这样的a自增会赋值给回自己
宜之槐慎卿
2020-03-11 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:865万
展开全部
事实证明。。如果a都等于1的情况下。都是2,
如果顺序执行,那么前面是2,后面是3
顺序大概是a=1+1,此时a被使用,所以a++此时a=2,但是1+1又给a赋值2,所以a=2;
++先执行是因为优先级大于=,作者题目都是错的,然而底下一堆在为了错的答案找解释,自己试试就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
由恨云表旻
2019-06-21 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:677万
展开全部
a=3时,
因为a++是变量a先参与其他运算再加1,所以(a++)+(a++)+(a++)实际上是3+3+3=9,运算后a的值是6.
++a则是先求a=a+1,然后再做其他运算,所以(++a)+(++a)+(++a)实际上是5+5+6=16,运算后a的值是6.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扬骄司徒逸
2020-06-28 · TA获得超过3821个赞
知道大有可为答主
回答量:3112
采纳率:35%
帮助的人:221万
展开全部
前者,a=a+++1被编译器解释为:
a=a+1;//a=1+1=2
a++;//a=2+1=3
后者,a+++1被编译器解释为:
a+1;//虽然做了1+1=2运算,但没有赋给a,a仍为1
a=a+1;//a=1+1=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式