for ループの基本的な構造は似ていますが、
for(initialization; condition; increment or decrement)
しかし、そのコア部分では、「条件」部分はループの動作を制御するためだけに扱われます。したがって、他の 2 つの部分が構文的に正しい場合、コンパイラはエラーを生成しません。
はx+1有効な C ステートメントであり、 の値はx変化しないため、条件 [ x <= 100 => 0 <= 100] が真であるという無限ループに陥ります。
繰り返しますが、x++または両方を単独で使用した場合++xと同様に扱います。x = x + 1しかし、x++実際にはポストインクリメント演算子であり、一方++xはプレインクリメント演算子です。つまり++x、 の値はx最初にインクリメントされ、次に に割り当てられxます。一方、 の現在の値はxステートメント全体で使用され、x++インクリメントxされて新しい値が割り当てられます。次の例を見てください -
#include<stdio.h>
void main()
{
int x=5;
/* Post & Pre-Increment used independently */
x++;
printf("x : %d", x);
++x;
printf("\nx : %d", x);
/* Used with printf() statement */
printf("\nPre-increment of x: %d", ++x);
printf("\nPost-increment of x: %d", x++);
printf("\nPost-increment effect on x: %d", x);
}
出力:
x : 6
x : 7
Pre-increment of x: 8
Post-increment of x: 8
Post-increment effect on x: 9
私の説明で理解していただければ幸いです。それでも理解できない場合は、返信してください。