你要的指针,我有注释,你应该看得懂
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/8c1001e93901213fbe9317375fe736d12e2e95bc?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int *p0=&num[0][0],*p1=&num[2][3],numsave,i,j;
//数组元素地址连续 指针p0 p1 分别指向一头一尾,循环向中间会和,并交换数值
while(1)
{
numsave=*p0;
*p0=*p1;
*p1=numsave;
p0++;
p1--;
if(p1-p0==1)//因为是偶数个元素,所以一头一尾取,最后两指针地址相差1
break;
}
printf("3*4数组\n 1, 2, 3, 4 \n 5, 6, 7, 8\n 9,10,11,12\n倒置后:\n");
for (i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%2d ",num[i][j]);
}
printf("\n");
}
}
追问嗯,感谢你的帮助!