关于一个C语言程序问题!

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:01:47
这个是利用整型指针变量将数组中的各元素按逆序存放。
#define N 10
void main()
{
int tmp,list[N]={0,1,3,2,4,5,6,8,7,9};
int *p,*q;
for(p=list; p<list+N;p++)
printf("%2d",*p);
for(p=list,q=list+N-1;p<list+N/2;p++,q--)
{
tmp=*p;
*p=*q;
*q=tmp;
}
printf("\n");
for(p=list;p<list+N;p++)
printf("%2d",*p);
}
各位高手,能不能帮小弟讲解一下啊!
希望每步都有步骤。
谢谢!

是逆序吧 不是从小到大吧 好像第八行的循环条件应该是p<list+N吧
哇嘎嘎 算是沙发吧
第一行是宏定义 N在程序中等同于数值10
接下来两行不用说啦
第四行声明整型变量temp 和数组list
第五行声明两指针变量
接下来六七行是一个循环结构 输出数组list
接下来的循环结构是关键
第八行for循环括号里面 指针p由首至末指向数组的元素,指针q由后向前指向数组的每个元素
第十 十一 十二行 是把指针q所指向的数组的元素赋值给p指针 从而完成逆序排放
接下来是输出换行
再接下来就是输出逆序排放的新数组