Цитата(zltigo @ Nov 22 2006, 13:16)

Подходите Вы значит к поезду. На каждом вагоне висит указатель 1...2..3...4...5.....6
добавляя к к номеру 1 вагона 4 Вы куда рассчитываете попасть? В 5 вагон или в 5 купе 1 вагона?
Последнее было-бы очень странным, как с точки зрения житейской логики, так и с точки зрения компилятора.
Это я "на пальцах" на случай, если вдруг закралясь мысль, что стандарт языка - "неправильный".
Это типа "мама приехала в 4-ом вагоне после первого" или как?

Т.е. пример не очень!

Ну и по сабжу надо упомянуть что архитектуры всякие бывают, и не всегда можно прямо адресовать байт, а порой и байтов то нет, т.е. есть n-разрядные слова. И каков физический смысл битов переменной указателя известно лишь компиллеру.
Так что в Сях всё как надо, хотя сто лет назад после АСМа тоже не понимал почему в АСМе прибавляю 4 а в Сях 1 надо.!
Как пример:
16-ти разрядный девайс (по крайней мере память) без возможности адресации непосредственно к байтам. Зачастую в такой сиситеме указатель (внутренний не Сишный) имеет шаг в 16-ти битное слово. И
Код
uint8_t buff8[X];
и
Код
uint16_t buff16[X];
будут иметь одинаковый размер, в первом случае половина объёма буфера не используется.
Далее уже модификаторы переменных или там опции компиллера позволяют исправить такую ситуювину (со своими проблемами типа оверхеда по коду/скорости).