c++ - 了解使用C++赋值时的运算符 “less”或 “greater”

标签 c++ bitwise-operators assignment-operator comparison-operators relational-operators

我使用了大于和小于的符号,并且可以输出!运作方式如何?

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。结果是01 –对于等于x2,它为零,为false。
用分号终止表达式会创建一条语句。该语句执行比较,……仅此而已。比较的结果将被丢弃,变量x保持不变。因此,观察到的结果值2

x = x > 3;中,子表达式x > 3是一个比较。如果比较成功,其结果为1,否则为0
由于您将x初始化为2,因此比较结果为false,即零。
结果是
x = x > 3;
相当于
x = (x > 3);
决心
x = 0;
因此,您观察到的输出。

关于c++ - 了解使用C++赋值时的运算符 “less”或 “greater”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63054091/

相关文章:

c++ - 需要帮助纠正 FFmpeg DLL 的访问冲突

java - tcp 服务器的奇怪行为(使用 winsock)

c++ - 使用 openmp 进行 LU 分解

c# - 如何修复 "The * or -> operator must be applied to a pointer"?

具有过期时间的 C++ 容器

javascript - JavaScript 中的按位运算符作为状态标志

C# 按位相等 bool 运算符

javascript - 位移位精度

c++ - 隐式赋值运算符

C++ 不匹配 'operator='