Вопрос: У меня определен указатель на char, который указывает еще и на int, причем мне необходимо переходить к следующему элементу типа int. Почему
не работает? Ответ: В языке С оператор преобразования типа не означает "будем действовать так, как будто эти биты имеют другой тип"; это оператор, который действительно выполняет преобразования, причем по определению получается значение типа rvalue, которому нельзя присвоить новое значение и к которому не применим оператор ++. (Следует считать аномалией то, что компиляторы pcc и расширения gcc вообще воспринимают выражения приведенного выше типа.). Скажите то, что думаете:
или просто
Смотри: ANSI Разд.3.3.4; Rationale Разд.3.3.2.4 c. 43. Примечание: Ещё можно сделать то же самое через указатель на указатель
поскольку результат разыменования — это lvalue, и к нему применимы присваивание и инкремент. -- Кодт |