4.2 表达式语句
C语言并不存在专门的“赋值语句”,C语言把赋值看成是一种操作,就像加法和减法一样,所以赋值就在表达式内进行。
只要表达式后面加上一个分号,就可以把表达式转变为语句。下面这两个表达式实际上是表达式语句,而不是赋值语句。
x = y + 3;
ch = getchar();
警告:
理解这点区别非常重要,因为像下面这样的语句也是完全合法的:
y + 3;
getchar();
当这些语句被执行时,表达式被求值,但它们的结果并不保存于任何地方,因为它们并未使用赋值操作符。因此,第1条语句并不具备任何效果,而第2条语句则读取输入中的下一个字符,但接着便被丢弃。实际上,它有可能影响程序的结果,但其方式过于微妙。
printf("Hello world!\n");
printf是一个函数,函数将会返回一个值,printf函数的返回值(它实际打印的字符数)我们通常并不关心,所以弃之不理也很正常。所谓语句“没有效果”只是表示表达式的值被忽略。printf函数所执行的是有用的工作,这类作用称为“副作用”(side effect)。
a++;
操作数++将增加变量a的值,这就是它的副作用。
C和指针 第4章 语句 4.2 表达式语句
于 2022-06-11 07:10:33 首次发布