#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
しかし、最初の printf の出力が 1 1 1 であって、4 4 1 であってはならないのはなぜですか? p=6004 で、ptr が 6004 で ptr++ が 6008 の場合、ptr-p は 4.pls の正しい me.thanks を与えるはずです..