【问题标题】:how does the below code output 3? (how does the below code read?)下面的代码如何输出 3? (下面的代码是如何读取的?)
【发布时间】:2015-04-10 01:44:47
【问题描述】:

我不明白的具体部分是if语句中的-a如何将-3更改为3。有人可以解释-a如何将a = -3更改为a = 3吗?

#include <iostream>

int main(){

signed a = -3;

if (a < 0){ std::cout << -a << std::endl; }
else { std::cout << a << std::endl; }

system("pause");
return 0;
}

【问题讨论】:

  • "下面的代码怎么 == 2?"你在问什么?

标签: c++11 if-statement int signed


【解决方案1】:

unary negative为例,当a=-3(小于0,则代码进入if块)则-a-(-3),即3

【讨论】:

    【解决方案2】:

    这段代码根本不会改变 'a' 的值。即使在执行 if 语句后,它仍将保持为 3 (a=3)。您可以通过添加来检查这一点

     std::cout << a << std::endl;
    

    在你的 if 语句中。系统只打印 -1*a 的值,即 (-a)

    【讨论】:

      猜你喜欢
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多