在 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.

(adsbygoogle = window.adsbygoogle || []).push({});