sinmz 2022-08-29 16:46 采纳率: 66.7%
浏览 47
已结题

a++和a--混合使用运算法则

遇到a++和a--混合使用的时候,总是与结果对应不上

int a=2,b;    
b=(++a)+(a--)-(++a)+(a--);
cout<<a<<" "<<b;

img

运算过程我是这样计算的,大家能帮忙看看么
先算++a:b = 3 + (a--)- (++a)+ (a--); a的值为3;
再算a--: b = 3 + 3 - (++a) + (a--); a的值为2;
再算++a: b = 3 + 3 - 3 +(a--); a的值为3;
最后算a--: b = 3 + 3 - 3 + 3 ; a的值最终为2;
b的计算结果最终应该为 6的,怎么输出显示的是 5 ,不太明白。

中途换了好多数据,例如下面程序与截图显示的效果

img

img

img

这个运算过程具体该怎么办呢?

  • 写回答

5条回答 默认 最新

  • 今夕何夕2112 2022-08-29 17:37
    关注

    我这里运行了是2 6,第一种是对的,可能是编译器“优化”出问题了。换个环境应该会正常比如devc++换codeblocks等。
    也可以试试看汇编g++ code.cpp -S -o code.s
    加上 -S 查看汇编,也可以再加上-O2或-O3优化汇编,
    看看这几个汇编文件里是怎么算的
    比如我这里(这是手机的

     行号  汇编语言
       18   mov w8, #2
      19     str w8, [sp, #8]
      20     ldr w8, [sp, #8]
      21     add w8, w8, #1
      22     str w8, [sp, #8]
      23     ldr w9, [sp, #8]
      24     subs    w10, w9, #1
      25     str w10, [sp, #8]
      26     add w8, w8, w9                                                                                     27     ldr w9, [sp, #8]
      28     add w9, w9, #1                                                                                     29     str w9, [sp, #8]
      30     subs    w8, w8, w9
      31     ldr w9, [sp, #8]
      32     subs    w10, w9, #1                                                                                33     str w10, [sp, #8]
      34     add w8, w8, w9                                                                                     35     str w8, [sp, #4]
    

    用到了三个寄存器w8,w9,w10,sp+#4存b,sp+#8存a

    img


    计算完后,把sp+#8和sp+#4依次输出就是a,b了
    2 6

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 创建了问题 8月29日

悬赏问题

  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 统计大规模图中的完全子图问题
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题