for迴圈中的三語句執行順序

2021-06-19 13:02:10 字數 566 閱讀 2937

for迴圈的執行語法是:

for(<;初始化》;《條件表示式》;《增量》) 語句;

初始化總是乙個賦值語句,它用來給迴圈控制變數賦初值;條件表示式是乙個關係表示式,它決定什麼時候退出迴圈;增量定義迴圈控制變數每迴圈一次後按什麼方式變化。這三個部分之間用";"分開。

在for迴圈中的三個語句執行順序是如何的呢?通過對彙編**的除錯發現了其中的玄機。

for( int i = 0;i <= 10;i++)

0041367a jmp main+0fbh (41363bh)

0041367c  mov         dword ptr [i],0

可以看到for迴圈的執行過程是:

1.首先對變數int i進行賦值,而後從第3行跳到第7行;

2.執行條件表示式,判斷是否跳出迴圈;

3.執行for迴圈體;

4.執行迴圈體完畢後,從26行跳轉到第4行,執行增量語句,再順序判斷條件表示式;

5.執行for迴圈體。。。

for迴圈的語句執行順序

在乙個技術qq群中,試著做了一道c的題,感覺是考察for迴圈的執行流程.原題 在c語言中,下列 的輸出結果是 選擇一項 void main j printf d,d i,j a 0,109,9 b 0,10 10,10c 10,10d 9,11 群裡居然有不少人都選了b,那個提問者還一直在問正確的結...

for迴圈的語句執行順序

在乙個技術qq群中,試著做了一道c的題,感覺是考察for迴圈的執行流程.原題 在c語言中,下列 的輸出結果是 選擇一項 void main j printf d,d i,j a 0,109,9 b 0,10 10,10c 10,10d 9,11 群裡居然有不少人都選了b,那個提問者還一直在問正確的結...

for迴圈語句頭的執行順序

for迴圈語句頭有3個部分 初始化 判讀條件 乙個表示式 有3個疑惑 1 第一次例如初始化i 0,是否還執行後面的i 或 i?第一次先初始化,然後判斷,i 就不執行了 2 第一次完了以後,初始化這句就不用了,是先執行i 還是限制性判斷語句呢?先執行i 3 現在知道是先執行i 再執行判斷語句,i 不是...