我们知道++是自增运算符。自增运算符有两种形式:前缀形式(++i)和后缀形式(i++)。他们有一个共同的效果,一个完整的语句执行完之后,i都是自增1的。但它们也存在区别。
你先看看下面程序的打印结果是什么?
#include<studio.h>
int main(void)
{
int i = 5;
int a = ++i;
int b = i++;
printf("d% d% d%\n", a, b, i++);
return 0;
}
往下翻,查看答案。
答案是:6, 6, 7。
简单来说:
前缀形式的自增运算符表达式++i的值是i+1;你可以这么记:自增符号在前面,那需要先自增,(这里的先是相对于赋值给a的操作来说的)然后再把自增后的值赋给表达式,所以i先自增变成i+1了,表达式的值也是i+1。
后缀形式的自增运算符表达式i++的值是i;你可以这么记:++在i的后面,所以后计算自增,先把i的值赋给表达式,所以表达式的值是i。
看完之后,你明白i++和++i的区别了吗?
自减运算符和自增运算符类似:
表达式i--的值是i;
表达式--i的值是i-1 |
|