array pointer ( вопрос чайника)
От: i.dmitry  
Дата: 02.01.10 20:18
Оценка:
прошу помощи в понимании:
int main ()
{

    int x[4] = {0, 2, 4, 6};
    int *px;
    int y;

    px = x;

    y = *px;
    printf ("(y = *px), y = %x\n", y);  
    
    y = *px++;
    printf ("(y = *px++), y = %x\n", y);

    y = ++*px;
        printf ("(y = ++*px), y = %x\n", y);
    
    y = *++px;
    printf ("(y = *++px), y = %x\n", y);

    y = (*px)++;
    printf ("(y = (*px)++), y = %x\n", y);
    
    y = ++(*px);
    printf ("(y = ++(*px)), y = %x\n", y);

    cin.get();
    return 0;
}


правильно ли я понимаю, что происходит в строчке: y = (*px)++
1) извлекаем значение на которое указывает px. *px = 4
2) далее к 4 прибавляем 1, получаем 5. т.е. y = 5.

Вопрос: почему принт эфом выводится значение 4?

-спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.