大一新生在学习指针的道路上迷惑不已

img

img


死循环了,第一个图片是我数组的思路,第二个是指针的思路。就是数组中十个整数,把其中的0换到最后,其他的数字顺序保持不变。数组的筛查思路已经写出来了,转换成指针的时候就一直死循环

void move(int *p,int n)
{
    int i=0,j=0,count=0,*q = p;
    while(q<p+n-count)
    {
        if(*q == 0)
        {
            for(i=0;i<n-j-1;i++)
                *(q+i) = *(q+i+1);
            count++;
        }
        else
        {
            q++;
            j++;
        }
    }
}



int main()
{
    int a[10] = {1,2,3,0,9,8,0,0,9,0};
    move(a,10);
    for(int i=0;i<10;i++)
        printf("%d ",a[i]);
}

第8行指针之间不能比较大小吧?

放心吧,以后迷惑的地方会更多