我使用了大于和小于符号,它给出了输出!它是如何工作的?
int x = 2;
x >= 3;
cout << x; // output is 2
而且输出也不同
int x = 2;
x = x > 3;
cout << x; // output is zero !! HOW ??
我使用了大于和小于符号,它给出了输出!它是如何工作的?
int x = 2;
x >= 3;
cout << x; // output is 2
而且输出也不同
int x = 2;
x = x > 3;
cout << x; // output is zero !! HOW ??
表达方式
x >= 3
是纯粹的比较。它测试变量的值是否x
大于或等于 3。结果是0
或1
-x
等于2
它为零,假。
用分号结束表达式会创建一个语句。该语句执行比较并且......没有别的。比较的结果被丢弃,变量x
保持不变。因此观察到的结果值2
。
在x = x > 3;
子表达式x > 3
中是一个比较。它的结果是1
如果比较成功,0
否则。
由于您初始化x
为2
,因此比较结果为假,即零。
因此
x = x > 3;
相当于
x = (x > 3);
决议为
x = 0;
因此您观察到的输出。
如果你使用
int x = 2;
x >= 3;
cout << x;
输出是2
因为x >= 3
操作的结果被丢弃(未使用)并x
保持与初始化时相同的值。x
初始化后未分配任何值。
如果你使用
int x = 2;
x = x > 3;
cout << x; `
x
3
用 来检查它是否大于x > 3
。如果是,则表达式的值x > 3
变为1
,如果不是,则变为0
。比较运算是布尔表达式。
x
这个布尔值在 评估之后被分配回x > 3
。
由于x
不大于3
,因此表达式x > 3
获得该值0
,并将该值分配回x
最终打印的内容。