« Отговор #1 -: Feb 06, 2006, 17:07 »
Не съм сигурен, че ти разбирам въпроса, но ще се опитам да ти отговоря.
Ако паметта ти е 12 байта, то можеш да я си представиш като 12х1 или 3х4 клетки в зависимост от това дали променливата ти е 1-байтова или 4-байтова.
Ако номерираме байтовете от 0 до 11, можеш да четеш и пишеш байт на всеки от тези адреси, но целочислени променливи можеш да имаш само на адреси 0, 4 и 8.
Когато компилаторът види инкрементиране (или декрементиране) на указател, той събира или изважда брой байтове, кратен на големината на променливата (не на стойността де, а на размерността).
С други думи:
char *c = 0;
++c;
c сочи адрес 1
докато
int *i = 0;
++i;
i сочи адрес 4