当我们使用null statemnt时

时间:2018-04-28 10:55:36

标签: c null

int main()
{

  double lk;
  for (lk=0;getchar()!=EOF;++lk)  

    ;

  printf("%.0f\n",lk);


  return 0;
}

/* --------------------------------------------------------------------- */

int main()
{
  float fareng;
  for (fareng=0;fareng<=300;fareng=fareng+20)

    printf("%6.1f\t%13.1f\n",fareng,(5.0/9.0)*(fareng-32.0));
  return 0;
}

我有问题为什么在第一个代码中需要null语句而第二个不需要?我理解什么是null语句但是这两个代码的区别在于不需要第二个空语句?谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

for循环必须有一个正文,一个它执行的语句。如果没有声明,就无法创建循环。

在第一个循环中,该语句是空语句。

在第二个循环中,该语句是printf调用语句。

第一段代码可以改写为

double lk;
for (lk=0;getchar()!=EOF;++lk)  
{
    // Empty
}    
printf("%.0f\n",lk);

第二段代码可以改写为

float fareng;
for (fareng=0;fareng<=300;fareng=fareng+20)
{
    printf("%6.1f\t%13.1f\n",fareng,(5.0/9.0)*(fareng-32.0));
}