1个回答
展开全部
你要的指针,我有注释,你应该看得懂
#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");
}
}
追问
嗯,感谢你的帮助!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询