C语言逻辑
#include<stdio.h>int main()
{
int i,*p,*q,t,a = {1,3,5,7,9,11,13,15,17,19};
for(p = a,i = 0;i < 10;i++)
{
printf("%4d",*(p+i));
}
printf("\n");
q = a + 9;
while(p < q) //从这开始底下的代码不应该是第一个和最后一个换第二个和倒数第二个换吗?为什么输出的是顺序换;没看懂里面的逻辑,大佬帮解释下;
{
t = *p;
*p = *q;
*q =t;
p++;
q--;
}
for(p = a;p - a < 10;p++)
{
printf("%4d",*p);
}
printf("\n");
}
这个不就是逆序输出吗 p指向第一个,q指向最后一个,交换后,p++指向第二个,q--指向倒数第二个,直到 p=q两个指针指向同一个位置 你一个一个反过来和整体反过来结果不是一样的吗。。。{:10_247:}
页:
[1]