2017-02-10 147 views
-1
for(print("a");print("b");print("c")) 
{ 
printf("d"); 
} 

這個問題在採訪中被問到,我的回答是「abdcabdcabdc .....」。 我想知道正確的輸出解釋。請幫助我。我想知道代碼的輸出

+2

這些'print'調用應該是'printf'調用嗎? –

+1

無論如何,是什麼讓你覺得「a」會多次打印? –

+1

不管你的期望如何,你是否考慮自己運行代碼來*看*它打印什麼? –

回答

1

首先,打印在for循環將是printf

這段代碼的輸出將是

abdcbdcbdcbdc ...無限次。

如我們在環路初始化計數器只有一次將打印僅一次)

說明

作爲它的一個for循環所以執行將在下面的順序。

  1. 初始化
  2. Conditon檢查
  3. 體執行
  4. 計數器加一

在這裏的條件是有的printf語句總是返回字符數它打印。這裏,printf(「d」)返回1因爲它只打印字符。

而在Ç,被視爲TRUE和被視爲FALSE

所以,這裏的條件總是,所以它運行無限次。