在下面的程序中,对于不同的指针操作,我将获得相同的值:
#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);
}
Run Code Online (Sandbox Code Playgroud)
输出: 0 1 2 2 3
我的疑问是如何*ptr以及*++ptr在打印相同的值。随着我们增加指针地址,它应该有所不同
我能理解的变量的后增量和前增量,这里都是前增量