为啥我的布尔变量会改变(C++)?

Posted

技术标签:

【中文标题】为啥我的布尔变量会改变(C++)?【英文标题】:Why does my boolean variable change (C++)?为什么我的布尔变量会改变(C++)? 【发布时间】:2019-08-11 19:17:42 【问题描述】:

有人可以向我解释这里发生了什么吗?

#include <iostream>
using namespace std;
int main() 
    bool x = false;
    if (x = true)  cout << "x is true" << endl; 
    if (x = false)  cout << "x is false" << endl;  
    // for some reason always prints "x is true".

我试图弄清楚为什么我不能使用布尔方法进行引用调用(是的,我也在擦除该方法后进行了测试),然后我意识到我的主要方法中的布尔变量正在改变在其自己的。请帮忙!

【问题讨论】:

【参考方案1】:

您的 if 语句需要双等于 == 进行比较。您正在使用 =

分配给您的变量

哦,x=true 分配给 x 并且它本身也是 true

【讨论】:

如果您将警告级别设置得足够高,许多编译器会警告您此类代码。

以上是关于为啥我的布尔变量会改变(C++)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个变量在 return 语句之后会改变?

为啥返回变量的值会改变?

为啥我的变量在函数内部修改后没有改变? - 异步代码参考

为啥我的变量在函数内部修改后没有改变? - 异步代码参考

为啥我的变量在函数内部修改后没有改变? - 异步代码参考

为啥我的变量在函数内部修改后没有改变? - 异步代码参考