gpt4 book ai didi

c++ - 在 C++ 中,当在控制结构中使用时,是什么导致赋值计算为真或假?

转载 作者:可可西里 更新时间:2023-11-01 15:39:56 25 4
gpt4 key购买 nike

那么有人可以帮助我掌握 if(...) 或 while(...) 等赋值的所有(或大部分相关)情况吗?

我的意思是这样的:

if(a = b)

while(a = &c)
{
}

等...

什么时候判断为真,什么时候判断为假?这是否会根据作业中使用的类型而改变?当涉及到指针时呢?

谢谢。

最佳答案

在 C++ 中,属性计算为被赋予的值:

int c = 5; // evaluates to 5, as you can see if you print it out
float pi = CalculatePi(); // evaluates to the result
// of the call to the CalculatePi function

所以,你声明:

if (a = b) { }
while (a = &c) { }

大致相当于:

a = b
if (b) { }
a = &c
while (&c) { }

相同
a = b
if (a) { }
a = &c
while (a) { }

那些 if (a) 等不是 bool 值时呢?好吧,如果它们是整数,0 为假,其余为真。这个(一个“零”值 -> false,其余 -> true)通常成立,但是你真的应该引用 C++ 引用来确定(但是请注意,编写 if (a == 0) 并不比 if (!a) 难多少,对读者来说更简单。

无论如何,您应该始终避免使您的代码变得模糊的副作用

您应该永远需要执行if (a = b):您可以通过其他更清晰且看起来不那么明显的方式实现完全相同的事情就像一个错误(如果我读到像 if (a = b) 这样的代码,我首先想到的是编写该代码的开发人员犯了一个错误;第二,如果我三重检查这是正确的,是我讨厌他!:-)

祝你好运

关于c++ - 在 C++ 中,当在控制结构中使用时,是什么导致赋值计算为真或假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com