C++11 下面的代码如何输出3?(下面的代码是如何读取的?)

C++11 下面的代码如何输出3?(下面的代码是如何读取的?),c++11,if-statement,int,signed,C++11,If Statement,Int,Signed,我不理解的具体部分是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; } #包括

我不理解的具体部分是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;
}
#包括
int main(){
符号a=-3;

如果(a<0){std::cout这是一个例子,当
a=-3
(小于
0
,代码然后进入
if
块)然后
-a
-3
这段代码根本不会改变'a'的值。它将保持3(a=3)即使在执行if语句之后,也可以通过添加

 std::cout << a << std::endl;
std::cout“下面的代码==2如何?”你在问什么?