下面的代码如何输出 3? (下面的代码如何阅读?)

how does the below code output 3? (how does the below code read?)

我不明白的具体部分是 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;
}

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

此代码根本不会更改 'a' 的值。即使在执行 if 语句后,它仍将保持 3 (a=3)。您可以通过添加

来检查
 std::cout << a << std::endl;

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