在下,讨教一个关于c语言中for循环的问题,求赐教

C语言 码拜 5年前 (2016-05-18) 414次浏览
#include<stdio.h>
void inverse(int *p, int n)
{
int *q;
q = p + n – 1;
for (;p < q;p++, q–)
{
int t;t = *q;*q = *p;*p = t;
}
}
int main(void)
{
int a[] = { 1,3,5,7,9 };
int *m, k;
for (m = a,k=0;k<5;k++)
printf(“%d”, *m++);
puts(“”);
inverse(a, 5);
for (m = a,k=0;k<5;k++)
printf(“%d”, *m++);
puts(“”);
return 0;
}
这段代码输出的结果为13579
97531
但是假如对for循环限制条件进行修改
int n=5;
改为for(m=a;n>0;n–)
感觉逻辑上没什么错误可输出结果只有13579。
求赐教!
解决方案

20

n–
下个循环要重新初始化,不然直接退出了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在下,讨教一个关于c语言中for循环的问题,求赐教
喜欢 (0)
[1034331897@qq.com]
分享 (0)