C语言里++K什么意思

Python015

C语言里++K什么意思,第1张

++K单独用等价于k=k+1;混合用如做为数组下标使用(a[++k]),

等价于k=k+1,然后认为表达式++K的值为新K。

K++单独用跟++k是一样的;混合用如做为数组下标使用(a[k++]),

等价于认为表达式K++的值不变,是老K;然后数组a使用表达式的值老K获得元素

a[k]的值xx。然后,做k=k+1。

也就是说混合用时,表达式本身虽一,却蕴含了两个操作;——但其实单独用时也蕴含了同样

两个操作。只不过单独用时,表达式自身的值被舍弃。

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