永发信息网

一个C++的问题。对加赋值和减赋值和乘赋值和除赋值和模赋值不太明白是什么意思。所以我对图中打了个问

答案:4  悬赏:80  手机版
解决时间 2021-11-07 02:11
  • 提问者网友:喧嚣尘世
  • 2021-11-06 14:32
一个C++的问题。对加赋值和减赋值和乘赋值和除赋值和模赋值不太明白是什么意思。所以我对图中打了个问
最佳答案
  • 五星知识达人网友:西风乍起
  • 2021-11-06 15:50
m+=n*=p-=1
的赋值是从右向左进行的,即:
p=p-1 得p=2
n=n*p 得n=4
m=m+n 得m=5
全部回答
  • 1楼网友:詩光轨車
  • 2021-11-06 19:59
p=p-1
n=n*p;
m=m+n;
例如:m=1,n=2,p=3;则结果为p=2(因为3-1),n=4(因为2*p),m=5(因为1+n)
  • 2楼网友:傲气稳了全场
  • 2021-11-06 18:29
在一般的C++编译器里面,算术运算表达式是用栈实现的,读入表达式的时候从左向右压栈,出栈的时候从右向左,因此m+=n*=p-=1从右向左执行。因此,表达式带上括号:
m+=(n*=(p-=1))
输出结果:
p = 2, n = 4, m = 5追问采纳错了。本来想采纳你的。不过也无所谓了追答没关系,问题弄明白就好
  • 3楼网友:过活
  • 2021-11-06 17:28

首先你要知道两点:

  1. a += 1,a *= 1等等是a = a + 1、a = a* 1的简写

  2. 赋值符号从右往左运算

然后再看那个表达式,就有

  1. p = p - 1

  2. n = n * p

  3. m = m + n

按1、2、3的顺序计算,就得到

  1. p = 3 - 1 = 2

  2. n = 2 * 2 = 4

  3. m = 1 + 4 = 5

----------------------------------------------------

以上。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯