私はループがどのように機能するかを理解しています。しかし、異なる構文は私に問題を引き起こします...あなたに例を挙げてみましょう:Cのループについて困惑しました
私は再帰ソートアルゴリズム(挿入ソート)を探していました。
void insertion_recursive(int array[],int size){
int i;
if (size<=1) return;
insertion_recursive(array,size-1);
for(i=size-1;i;i--)
if(array[i]<array[i-1])
swap(&array[i],&array[i-1]);
else
break;
}
私は、コードがどのように動作するかを理解しますが、ループの条件が私を混乱されています:
for(i=size-1 ; i ; i--)
それが何を意味するコードは次のように行ってきましたか?条件を指定せずに「私」を残すだけですか?
にしかし、それは* *条件を持っていません!ちょうど 'if(i)... 'のように。 – usr2564301
「0」は「偽」であり、他の値は「真」である。 –
_ループの仕組みを理解しています_あなたがしたのであれば質問しません。 'i'が0のときはfalse、そうでなければ真です –