副作用:该操作符执行完后会对操作数进行修改
操作符 | 副作用 |
++,-- | 不论是前缀还是后缀形式,这些操作符都会修改它们的操作数 |
= | 包括所有其他的复合赋值符:它们都修改作为左值的左操作树 |
赋值、复合赋值的比较
a = a + 5; //对a进行两次求值
a += 5; //对a进行一次求值
在进行简单运算时,上边两式的效率差不多,结果也相同,但进行如下运算时就需要小心:
a[f(x)] = a[f(x)] + 1; (3)
a[f(x)] += 1; (4)
由于编译器并不知道f函数是否具有副作用,故(3)式需要进行两次求值,效率较低;而(4)式只需计算一次下标,故效率较高
标准输入输出格式代码组成
scanf格式代码(以%开头):(1)一个可选的星号;(2)一个可选的宽度;(3)一个可选的限定符;(4)格式代码。宽度以一个非负整数给出,限制将被读取用于转换的输入字符的个数。如果没有给出宽度,函数就连续读入字符直到遇见输入中的下一个空白字符。限定符用于修改有些格式格式代码的含义。
printf格式代码(以%开头):(1)零个或多个标志字符,用于修改有些转换的执行方式;(2)一个可选的最小字段宽度;(3)一个可选的精度;(4)一个可选的修改符;(5)转换类型