Является ли пробел между двумя = в операторе равенства допустимым в C ++?

В настоящее время я изучаю C ++ из «Решение проблем с C ++» (9-й, W. Savitch). В книге показан пример цикла while. Цикл while выглядит следующим образом.

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

ans имеет тип char,
Булево выражение, кажется, пытается использовать оператор равенства, и в контексте //compound statement это имеет смысл. Тем не менее, я всегда думал, что пробелы запрещены в операторе равенства. т.е. == законно, но = = незаконно

Когда я копирую код и компилирую его, мой компилятор выдает ошибку «ожидаемое выражение», когда он достигает = = как будто я пытаюсь присвоить выражение переменной. Я почти уверен, что это опечатка в книге. Тем не менее, на всякий случай, если книга пытается бросить кривая, я подумал, что спросить …

Большое спасибо!

4

Решение

Является ли пробел между двумя = в операторе равенства допустимым в C ++?

Нет. = = это два = жетоны. == это один == маркер. Вы не можете использовать первое, когда имеете в виду второе.

3

Другие решения


По вопросам рекламы [email protected]