C语言笔记:可以把读取和测试合并成一个表达式

       ch = getchar();
       while (ch != ‘\n’)
       {
              //…
              ch = getchar();
       }
可以替换成下面形式的循环:
       char ch;
       while ((ch = getchar()) != ‘\n’)    //ch = getchar()两侧的括号不能省略,否则意味着将0或1赋值给ch,这不是我们的初衷
       {
              if (ch == ‘ ‘)
                     putchar(ch);
              else
              {
                     putchar(ch + 1);
              }
       }
这体现了C特有的编程风格——把两个行为合并成一个表达式。C对代码的格式要求宽松,
这样写让其中的每个行为更加清晰:
       while (
                     (ch = getchar())
                                                       != ‘\n’)
       {
              if (ch == ‘ ‘)
                     putchar(ch);
              else
              {
                     putchar(ch + 1);     //这演示了字符实际上是作为整数储存的
              }
       }
赋值表达式的值是赋值运算符左侧运算对象的值,所以ch = getchar();的值就是ch的新值

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒