在 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
代码 n = i++;
中,= 运算符的优先级高于后缀 ++ 运算符,所以先将 i 值赋予 n,再将 i 增 1;
代码 n = ++j;
中,= 运算符的优先级低于前缀 ++ 运算符,所以先将 j 增 1,再将 j 值赋予 n.