#include<stdio.h>
#include<stdlib.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;
}
这个程序的答案是 1 1 1
2 2 2
3 3 3
3 4 4
使用 gcc。但是为什么第一个 printf 的输出给出 1 1 1 不应该是 4 4 1?假设如果 p=6004 并且 ptr 将是 6004 并且 ptr++ 将是 6008.then ptr-p 应该给 4.pls 正确的我。谢谢..