当我有这个疑问时,我正在重新审视指针。
int *ptr;
int arr[5] = {10,20,30,40,50};
ptr = &arr[0];
现在printf("Value: %d",*ptr);
会打印10
如果我做:
ptr++;
printf("Value: %d",*ptr);
结果将是:20
同样,如果我这样做:
*ptr++;
printf("Value: %d",*ptr);
结果是:30
但
printf("Value: %d",++*ptr);
给我31
我认为,当我增加它时,它ptr
是类型int
,它会跳转 4 个字节到下一个内存位置。但为什么它对*ptr++
和ptr++
而不是表现出相同的行为++*ptr
呢?