#include<stdio.h>
int main()
{
for(;NULL;)
printf("STACK");
return 0;
}
輸出:STACK 我知道NULL有ascii值爲0,它是錯誤的,但是當我在turbo c上運行時,此程序給出輸出「堆棧」,它是如何可能的。帶NULL條件的for循環,爲什麼printf();執行?
#include<stdio.h>
int main()
{
for(;NULL;)
printf("STACK");
return 0;
}
輸出:STACK 我知道NULL有ascii值爲0,它是錯誤的,但是當我在turbo c上運行時,此程序給出輸出「堆棧」,它是如何可能的。帶NULL條件的for循環,爲什麼printf();執行?
「堆棧」從不輸出。這是因爲for
語句的條件部分總是假的(假設NULL
是#define
d爲(void *)0
。
#include
@nasamind你是說你*正在堆疊打印出來嗎?這看起來不太可能,而且你爲什麼會接受這個答案,而這個答案卻是相反的(我同意這個答案)。這一切都很混亂。 – Levon
也許他有一個';'在'for(; NULL;)'之後?只是猜... – wildplasser
你的問題不太清楚,請問可以請你改寫一下嗎? – Levon
我沒有得到任何輸出我編譯並運行這個。這是你的*實際*代碼,而你*實際上*從它獲得輸出? – jwodder
@jwodder我*想* OP想知道爲什麼沒有輸出..這是因爲for循環從來沒有進入(空使條件部分失敗),但這只是我的猜測,問題根本不清楚不幸的是 – Levon