Пусть этот while
цикл:Как компилятор имеет дело с `(c = getchar())! = EOF`?
while ((c = getchar()) != EOF)
^^^^^^^^^^^^^
assignment
Как вы можете видеть, что мы будем сравнивать задание EOF
, как это может быть случилось? Насколько я знаю, назначение не возвращает никакого значения, так что вы не можете сравнить задание (правильно?)
присвоение обычно возвращает значение: вы можете использовать это для «a = b = c = 0;» или в таком состоянии, как в вашем примере ... –
Это выражение, а не просто назначение на языке C. – BLUEPIXY
Вам нужно привыкнуть к понятиям ** значения ** и ** побочного эффекта ** (под) выражений. Значение ** ** 'c = getchar()' в основном, независимо от того, что пользователь набрал; ** побочный эффект ** меняет значение 'c'. – pmg