在 C++ 中,相等运算符中两个 = 之间的空格是否合法?

Is whitespace between the two ='s in an equality operator legal in C++?

我目前正在向 'Problem solving with C++'(9 日,W. Savitch)学习 C++。这本书展示了一个 while 循环的例子。 while 循环如下所示。

while (ans = = 'Y' || ans = = 'y')
{
    //compound statement
}

anschar 类型。 布尔表达式似乎在尝试使用相等运算符,并且在 //compound statement 的上下文中这是有道理的。但是,我一直认为相等运算符中的空格是非法的。即 == 是合法的,但 = = 是非法的。

当我复制代码并编译它时,我的编译器在遇到 = = 时抛出错误 'expected expression',就好像我正在尝试将表达式分配给变量一样。我几乎可以肯定这是书中的错字。但是,以防万一这本书试图抛出曲线球,我想我会问...

非常感谢!

Is whitespace between the two ='s in an equality operator legal in C++?

没有。 = = 是两个 = 标记。 == 是一个 == 令牌。当你指的是后者时,你不能使用前者。