示例代码:
#include <iostream>
int main()
{
if(int a = std::cin.get() && a == 'a')
{
std::cout << "True" << std::endl;
}
}
问题:
当我编译这段代码时,Visual Studio 给了我一个很好的警告:warning C4700: uninitialized local variable 'a' used
. 所以我知道那a
是未初始化的。但是,我想完全理解表达式是如何计算的。上面的 if 语句是否等同于if(int a && a == 'a') { a = std::cin.get(); }
?有人可以准确解释会发生什么吗?