visual-c++ - 第一个条件中的变量赋值和第二个条件中使用相同的变量 定义良好吗?

标签 visual-c++ c++-cli variable-assignment sequence-points

这个定义明确吗?

Streamreader ^reader = gcnew Streamreader("test.txt");
String  ^line;

while ((line = reader->ReadLine()) != nullptr && line != "")
{
    //do stuff
}

我相信我在某处读到不能保证赋值在第二个条件之前执行。可能是我错了,或者这仅适用于 C。
谷歌没有帮助我解决这个问题,这就是我在这里问的原因:)

最佳答案

使用 && 和 ||,可以保证在评估第二个条件之前评估第一个条件(包括赋值)。

另一方面,对于按位 & 和 |,则不提供此类保证。

关于visual-c++ - 第一个条件中的变量赋值和第二个条件中使用相同的变量 定义良好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3073792/

相关文章:

c++ - 微软对 std::reverse_copy 的安全替代?

c++-cli - C++ CLI 错误 C3767 : candidate function(s) not accessible

c# - 无效的变体崩溃

python - 是什么导致了这个程序的错误

python - 使用三元运算符分配两个变量

visual-c++ - Xinput 不适用于带有 Visual Studio 2012 的 Windows 7

c++ - Qt项目C2872错误,生成的ui文件中符号不明确

visual-c++ - 使用 VS 2010 C++ 构建 exe 后缺少 MSVCP100.dll

.net - 如何从非托管代码调用托管代码?

java - 当我在 Java 中只有一个对象的引用时,如何将一个对象分配给另一个对象?