你想输出多次,可以for(i=0i<2i++)
{
k=f(a++)
printf("k=%d\n",k)
}
不加{}括号的话,for只对它的下一条指令有效。
k--的结果是k,到下一条语句k值才变成k-1,--k是在当前语句k值就变成k-1。比如:k = 3
a = k--(这里k值还没变,是3,所以a = 3)
b = k(这里k值变成2,所以a = 2)
而如果是:
k = 3
a = --k(这里k值就已经变为2,所以a = 2)
b = k(这里b = 2)
所以--k对k值的改变是马上执行的,而k--对k值的改变是在下一条语句才执行,你的应该改成:
i = --k -2
注:由于不同编译器可能有不同的解释,所以对于--k、k--、++k、k++这类语句,一个好的习惯是将它们单独作为一个语句,不参与运算,也就是将i = --k - 2写成:
--k;(这里写k--也一样)
i = k - 2