【发布时间】:2021-12-07 09:58:05
【问题描述】:
所以,我正在学习运算符,尤其是二元运算符。
在以下代码中:
int x=9;
x=-x;
cout<<x; // prints as -9
x=+x;
cout<<x; //prints as -9
问题是为什么不是 9 或 +9(contextual) 而不是 -9 ?为什么会这样?
【问题讨论】:
-
因为在
-x中可以认为是0-x。和+x一样0+x。 -
啊,这就是它的工作原理?我的意思是编译器是这么看的?
-
您还期待什么?通常很难将其与数学符号相提并论,但这里是相同的
+x只是x和-x是x否定 -
这就是它在数学中的工作方式。
-是否定,是对零的补码。+只不过是强调正号而已。另一种思考方式是-x = (-1)*x,+x = (+1)*x -
要明确 - 你希望
+ ( -x )产生x?