配列を介してcにデキューを実装しています。左と右は、デキューの左端と右端の要素を指すポインターです。show()関数は、左ポインターと右ポインターを受け取ります。void show(int * l、int * r)で次のことを試してみると、関数は間違った出力を生成します-
int *t;
for(t=l;t<r;t++);
{
printf("%d-->",*t);
}
printf("%d\n",*t);
しかし、私がこれを試してみると、それはうまくいきます-
for(t=l,i=0;i<r-l;i++,t++)
printf("%d-->",(*t));
printf("%d\n",*r);
明らかに、最初のコードのポインター間の比較は、同じ配列のメンバーを指しているにもかかわらず機能していません。なぜこれが起こっているのでしょうか。
編集-これが全体の機能です
void show(int *l,int *r)
{
if(l==r && r==NULL)
{
printf("underflow\n");
}
else
{
int *t,i;
for(t=l;t!=r;t++);
{
printf("%d-->",*t);
}
printf("%d\n",*r);
/* for(t=l,i=0;i<r-l;i++,t++)
printf("%d-->",(*t));
printf("%d\n",*r);*/
}
}
コメントアウトされた領域はshow()で機能していません。質問は閉じられました、ばかげたエラー!!!