zhumengyun 发表于 2014-9-24 15:17:22

while 循环问题

#include<stdio.h>
#include<string.h>
void f(int *x,int *y)
{
        int t;
        t=*x;
        *x=*y;
        *y=t;
}
main()
{
        int a={1,2,3,4,5,6,7,8}, i,*p,*q;
        p=a;q=&a;
        while(p!=q)
        {
                f(p,q);
                p=p+1;
                q=q-1;
        }
        for(i=0;i<8;i++)
                printf("%d\t",a);
}为什么while循环会出错,程序无法运行

漩涡鸣人 发表于 2014-9-24 18:49:47

p=p+1;
q=q-1;
这两句有问题
循环到p=&a、q=&a的时候
执行这两句,正好两个指针变量没有相等的时候,所以继续死循环下去,就用到了其他内存空间,接下来程序就崩溃了

hacker.jin 发表于 2014-9-24 20:25:39

楼上正解!
页: [1]
查看完整版本: while 循环问题