C语言知识,求解答,顺便讲解一下为什么只有一个k值输出?

Python043

C语言知识,求解答,顺便讲解一下为什么只有一个k值输出?,第1张

你只调用了一次printf,所以只有一个k输出;

你想输出多次,可以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