我想知道代码的输出

问题描述:

for(print("a");print("b");print("c")) 
{ 
printf("d"); 
} 

这个问题在采访中被问到,我的回答是“abdcabdcabdc .....”。 我想知道正确的输出解释。请帮助我。我想知道代码的输出

+2

这些'print'调用应该是'printf'调用吗? –

+1

无论如何,是什么让你觉得“a”会多次打印? –

+1

不管你的期望如何,你是否考虑自己运行代码来*看*它打印什么? –

首先,打印在for循环将是printf

这段代码的输出将是

abdcbdcbdcbdc ...无限次。

如我们在环路初始化计数器只有一次将打印仅一次)

说明

作为它的一个for循环所以执行将在下面的顺序。

  1. 初始化
  2. Conditon检查
  3. 体执行
  4. 计数器加一

在这里的条件是有的printf语句总是返回字符数它打印。这里,printf(“d”)返回1因为它只打印字符。

而在Ç,被视为TRUE和被视为FALSE

所以,这里的条件总是,所以它运行无限次。