为什么布尔变量会更改(C ++)?

时间:2019-03-21 00:01:59

标签: c++ variables boolean pass-by-reference main

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

#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 个答案:

答案 0 :(得分:6)

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

分配变量

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