Вопрос: Как массив может быть значением типа lvalue, если нельзя присвоить ему значение?

Ответ:
Стандарт ANSI C определяет "модифицируемое lvalue", но массив к этому не относится.

Смотри: ANSI Разд. 3.2.2.1 c. 37.
Автор: Кодт    Оценить