下面的代码如何输出 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)
我不明白的具体部分是 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)