結果輸出一個“*”解析?

今天碰到一道c語言題,如下:

#include

main()

{

int i,k;

for(i=0;i<4;i++,i++)

for(k=1;k<3;k++);

printf("*");

}

執行結果: *

在百度搜索答案,都說程式碼錯誤,那為什麼能夠執行呢?

大家都知道for後是沒有分號的,我的理解是: for(k=1;k<3;k++);其實是兩個語句:

for(k=1;k<3;k++);即“;”為單獨一個空語句,因此說這兩個for沒有要執行的語句,直接執行下一條語句,即printf("*");

工具/原料

Microsoft Visual c++ 6.0

方法/步驟

敲入程式碼並執行,

#include

main()

{

int i,k;

for(i=0;i<4;i++,i++)

for(k=1;k<3;k++);

printf("*");

}

顯示結果為:*

結果輸出一個“*”解析

將程式碼修改為:

#include

main()

{

int i,k;

for(i=0;i<4;i++,i++)

for(k=1;k<3;k++)

;

printf("*");

}

執行,結果還是:*

結果輸出一個“*”解析

相關問題答案