C语言:递增递减运算符使用时要注意这几点
-
printf("%d %d\n", num, num*num++)
这里printf()可能先对最后一个参数求值,这样在输出num之前就递增了。
本来要打印:4 16;却打印成:5 16.
也可能从右向左执行,先计算递增,得到结果:5 20。 -
n = num/2 + 5*(1 + num++);
这里可能先运行5*(1 + num++)。 -
n = 2; y = n++ + n++;
这里n肯定会递增2,但是y的值就不一定是4了。
递增递减使用规则:
- 如果一个变量是一个函数的多个参数之一,不要使用递增递减;
- 如果一个变量多次出现在一个表达式中,不要使用递增递减;