在使用 C++ 赋值时理解运算符“更少”或“更大”

Saj*_*hir 1 c++ bitwise-operators assignment-operator comparison-operators relational-operators

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

int x = 2;
x >= 3;
cout << x;  // output is 2
Run Code Online (Sandbox Code Playgroud)

而且输出也是不同的

int x = 2;
x = x > 3;
cout << x;   // output is zero !! HOW ??
Run Code Online (Sandbox Code Playgroud)

Cia*_*Pan 5

表达方式

x >= 3
Run Code Online (Sandbox Code Playgroud)

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

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


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

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

其结果

x = x > 3;
Run Code Online (Sandbox Code Playgroud)

相当于

x = (x > 3);
Run Code Online (Sandbox Code Playgroud)

决心

x = 0;
Run Code Online (Sandbox Code Playgroud)

因此您观察到的输出。