Является ли пробел между двумя = в операторе равенства допустимым в C++?
В настоящее время я изучаю C++ из "Решение проблем с C++" (9-й, W. Savitch). В книге показан пример цикла while. Цикл while выглядит следующим образом.
while (ans = = 'Y' || ans = = 'y')
{
//compound statement
}
ans
имеет тип char
, Булево выражение, кажется, пытается использовать оператор равенства, и в контексте //compound statement
это имеет смысл. Тем не менее, я всегда думал, что пробелы запрещены в операторе равенства. т.е. ==
законно, но = =
незаконно
Когда я копирую код и компилирую его, мой компилятор выдает ошибку "ожидаемое выражение", когда он достигает = =
как будто я пытаюсь присвоить выражение переменной. Я почти уверен, что это опечатка в книге. Тем не менее, на всякий случай, если книга пытается бросить кривая, я подумал, что спросить...
Большое спасибо!
1 ответ
Является ли пробел между двумя = в операторе равенства допустимым в C++?
Нет. = =
это два =
жетоны. ==
это один ==
маркер. Вы не можете использовать первое, когда имеете в виду второе.