main(){int a[2][3][4]={24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1}; int i,j,m; int *p,t,k; int *p1; p=a; p1=*p; for(i=0;i<23;i++) { k=*(p+i); p=p+i; for(p1=p+1;p1

熱心網友

程序中錯誤很多,象語法錯誤什么的就不多說了,要命的是對指針的概念簡直是一竅不通。下面是我重寫的代碼,注意一下指針的聲明、地址的計算與引用。void main(){int a[2][3][4]={24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};int i,j,m;int *p,*p1,t;p=a[0][0]; //指向一個一維數組for (i = 0; i *p1) {t = *p1; *p1 = *(p + i); *(p + i) = t;}}}printf("\n");for(i=0;i<2;i++){ for(j=0;j<3;j++){for(m=0;m<4;m++)printf("%d\t",a[i][j][m]);printf("\n");}printf("\n");}}。

熱心網友

p1 要定義成 **p1 第8行改成*p1=p;**p1是指向指針*p的指針,要用2維指針