1

我使用了大于和小于符号,它给出了输出!它是如何工作的?

int x = 2;
x >= 3;
cout << x;  // output is 2

而且输出也不同

int x = 2;
x = x > 3;
cout << x;   // output is zero !! HOW ??
4

2 回答 2

5

表达方式

x >= 3

是纯粹的比较。它测试变量的值是否x大于或等于 3。结果是01-x等于2它为零,假。

用分号结束表达式会创建一个语句。该语句执行比较并且......没有别的。比较的结果被丢弃,变量x保持不变。因此观察到的结果值2


x = x > 3;子表达式x > 3中是一个比较。它的结果是1如果比较成功,0否则。

由于您初始化x2,因此比较结果为假,即零。

因此

x = x > 3;

相当于

x = (x > 3);

决议为

x = 0;

因此您观察到的输出。

于 2020-07-23T12:21:27.213 回答
2

如果你使用

int x = 2;
x >= 3;
cout << x;  

输出是2因为x >= 3操作的结果被丢弃(未使用)并x保持与初始化时相同的值。x初始化后未分配任何值。


如果你使用

int x = 2;
x = x > 3;
cout << x;   `

x3用 来检查它是否大于x > 3。如果是,则表达式的值x > 3变为1,如果不是,则变为0。比较运算是布尔表达式

x这个布尔值在 评估之后被分配回x > 3

由于x不大于3,因此表达式x > 3获得该值0,并将该值分配回x最终打印的内容。

于 2020-07-23T12:54:39.820 回答