在C中,++和-运算符称为递增和递减运算符。它们是一元运算符,只需要一个操作数。因此,++和-运算符可以出现在操作数之前或之后,具有相同的效果。
这意味着i ++和++ i将等效。
i=5; i++; printf("%d",i);
和
i=5 ++i; printf("%d",i);
两者都会使i = 6。
但是,当增量表达式与赋值运算符一起使用时,运算符的优先级就会出现。
i=5; j=i++;
在这种情况下,=的优先级高于后缀++。因此,在递增i之前将i的值分配给i。这里j变成5,而我变成6。
i=5;j=++i;
在这种情况下,前缀++的优先级大于=运算符。因此,我将首先递增,并将递增的值分配给j,此处i和j都变为6。
#include <stdio.h> int main() { int i=5,j; j=i++; printf ("\nafter postfix increment i=%d j=%d", i,j); i=5; j=++i; printf ("\n after prefix increment i=%d j=%d",i,j); return 0; }
输出是
after postfix increment i=6 j=5 after prefix increment i=6 j=6