В приведенной ниже программе я получаю одно и то же значение для различных операций с указателями:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
int main(void) {
int i;
int *ptr = (int *)malloc(5 * sizeof(int));
for (i = 0; i < 5; i++)
*(ptr + i) = i;
printf("%d ", *ptr++);
printf("%d ", (*ptr)++);
printf("%d ", *ptr); ---------> o/p: 2
printf("%d ", *++ptr);--------> o/p: 2
printf("%d ", ++*ptr);
}
Вывод: 0 1 2 2 3
Я сомневаюсь, как *ptr
и *++ptr
печатаюттакое же значение.Он должен отличаться, так как мы увеличиваем адрес указателя
Пост- и предварительное увеличение для переменной, которую я могу понять, здесь оба являются предварительным увеличением