| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Отрицательный индекс |
| Автор: antonkonikov 10.6.2010, 22:40 |
| Корректно ли нижеследующее присваивание в Cи? Если нет объясните почему. Иначе напишите фрагмент программы, где это присваивание корректно используется. a[-3] = -5; Модератор: Название темы должно отражать ее суть! |
| Автор: djamshud 10.6.2010, 22:50 | ||
|
| Автор: Abyx 11.6.2010, 00:18 | ||
| индекс массива имеет тип ptrdiff_t, а это тип со знаком Добавлено через 5 минут и 46 секунд
|
| Автор: azesmcar 11.6.2010, 12:34 |
| antonkonikov Абсолютно корректно, обращение к массиву по индексу компилятором преобразовывается в *(array_ptr + index), если индекс отрицательный - получается *(array_ptr + (-index)), т.е. *(array_ptr - index). Дальше уже все зависит от этого адреса, если участок памяти в порядке - значит и программа в порядке. |