printf
От: cyc10ne Россия http://sx.openbsd.ru/
Дата: 27.02.03 07:45
Оценка:
объясните пожалуйста почему вот эта программа

#include <stdio.h>

int
main(int argc, char *argv[])
{
        int i;

        for (i = 0; i < 10; ++i) {
                printf("\ti=%d\t%d\n", i, (int *)2 + i);
        }
        return (0);
}


после компиляции и запуска выводит следующее

i=0 2
i=1 6
i=2 10
i=3 14
i=4 18
i=5 22
i=6 26
i=7 30
i=8 34
i=9 38

получается что значение i умножается на 4 (это sizeof(int) либо sizof(int*)) и потом
к произведению прибавляется 2. но почему так происходит?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.