*p[4]这指针数组,定义一个数组,里面存放的是指针。(*p)[4]定义的是一个指向一维数组的指针,这是一个指针,p++相当于p的地址相加了1*4举例说明:#includevoidmain(){inta[2][2]={{1,2},{8,9}};int*p[4],(*q)[2];q=a;p[0]=&a[0][0];p[1]=&a[0][1];p[2]=&a[1][0];p[3]=&a[1][1];for(inti=0;i<4;i++)printf("%d\t",*p[i]);printf("\n");for(intj=0;j<2;j++,q++){printf("%d\t",(*q)[j]);}printf("\n");}}输出的结果是:指针数组:1,2,8,9指针数组中的每个元素都要给其赋予地址,否则出错数组指针:1,9数组指针只要开始赋值头地址,之后执行q++是相加维数,所以结果是1,9而不是1,2
温馨提示:答案为网友推荐,仅供参考