今天碰到一道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("*");
}
執行,結果還是:*