在C++中赋值时理解操作符“少”或“大”

在C++中赋值时理解操作符“少”或“大”,c++,bitwise-operators,assignment-operator,comparison-operators,relational-operators,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。结果为0或1–对于x等于2,则为零,为假 用分号终止表达式将创建一条语句。该语句执行比

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

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,因此比较结果为false,即0

结果

x = x > 3;
相当于

x = (x > 3);
决心

x = 0;
因此,您观察到了输出。

表达式

x >= 3
这纯粹是一种比较。它测试变量x的值是否大于或等于3。结果为0或1–对于x等于2,则为零,为假

用分号终止表达式将创建一条语句。该语句执行比较,而…不执行其他操作。比较结果被丢弃,变量x保持不变。因此,观察到的结果值为2

在x=x>3时;子表达式x>3是一个比较。如果比较成功,其结果为1,否则为0

由于您将x初始化为2,因此比较结果为false,即0

结果

x = x > 3;
相当于

x = (x > 3);
决心

x = 0;
因此您观察到的输出。

如果您使用

int x = 2;
x >= 3;
cout << x;  
int x = 2;
x = x > 3;
cout << x;   `
在x>3时检查x是否大于3。如果是,则表达式x>3的值变为1,否则变为0。比较操作非常简单

在计算x>3后,该布尔值被分配回x

由于x不大于3,表达式x>3获得值0,该值被赋回x,最后是打印内容。

如果使用

int x = 2;
x >= 3;
cout << x;  
int x = 2;
x = x > 3;
cout << x;   `
在x>3时检查x是否大于3。如果是,则表达式x>3的值变为1,否则变为0。比较操作非常简单

在计算x>3后,该布尔值被分配回x


由于x不大于3,表达式x>3获得值0,该值被分配回x,最后是打印内容。

x>=3;是x>3 | | x==3;结果被丢弃。这不是速记作业。x>=3;是x>3 | | x==3;结果被丢弃。这不是速记作业。@PeteBecker谢谢修正了。@PeteBecker谢谢固定的