【发布时间】:2022-01-19 12:58:14
【问题描述】:
有人可以解释为什么在输出中打印3 4 4 而不是4 4 4?
#include <stdio.h>
int main(){
int a[] ={0,1,2,3,4};
int *p[] = {a,a+1,a+2,a+3,a+4};
int **ptr= p;
ptr++;
printf("%d %d %d\n",ptr-p,*ptr-a,**ptr);
*ptr++;
printf("%d %d %d\n",ptr-p,*ptr-a,**ptr);
*++ptr;
printf("%d %d %d\n",ptr-p,*ptr-a,**ptr);
++*ptr;
printf("%d %d %d\n",ptr-p,*ptr-a,**ptr);
return 0;
}
【问题讨论】:
-
你是在增加
ptr,还是它指向什么? -
请复制粘贴文字不要使用图片
标签: c pointers increment dereference pointer-arithmetic