C语言中 i++ 和 ++i 的区别
在C语言中,++ 运算符也叫递增运算符,只需要一个操作数,属于一元运算符;本文将讨论前缀++运算符和后缀++运算符的区别,以及符号优先级的问题;
++运算符
++运算符用于将操作数增1(这里不讨论指针);不管运算符在操作数之前还是之后,其结果是相同的;
#include <stdio.h>
int main(){
int i = 0, j = 0;
i++;
++j;
printf("i:%d j:%d\n", i, j);
}
运行结果
i:1 j:1
i++ 和 ++i 的区别
前缀++运算符先作用于操作数,再返回值;后缀++运算符先返回值,再作用于操作数;
#include <stdio.h>
int main(){
int i = 0, j = 0;
printf("i:%d j:%d\n", ++i, j++);
printf("i:%d j:%d\n", i, j);
}
运行结果
i:1 j:0 i:1 j:1
符号的优先级
= 运算符的优先级高于后缀++运算符,而前缀++运算符高于=运算符;
#include <stdio.h>
int main(){
int i = 0, j = 0;
int n;
n = i++;
printf("%d\n", n);
n = ++j;
printf("%d\n", n);
}
0 1
代码的第8行,=运算符的优先级高于后缀++运算符,所以先将i值赋予n,再将i增1;
代码的第11行,=运算符的优先级低于前缀++运算符,所以先将j增1,再将j值赋予n.