递增运算符(increment operator),将其运算对象递增1.该运算符以两种方式出现。
第1种方式:在变量名之前,如 i - -;
第2种方式:在变量名之后,如 i++;
示例:
#include<cstdio.h>
int main(){
int ultra = 0,super = 0;
while(super<5)
{
super++;
++ultra;
printf("super = %d,ultra = %d \n",super,ultra);
}
return 0;
}
输出结果:
super = 1, ultra = 1;
super = 2, ultra = 2;
super = 3, ultra = 3;
super = 4, ultra = 4;
super = 5, ultra = 5;
这样看来,第一种方式和第二种方式的作用效果似乎是一样的,而且我们可以用这种方式实现递增效果:
super = super +1;
ultra = ultra + 1;
但是真的是这样吗?答案是:非然也!
来,给大家再看一个例子:
#include<cstdio.h>
int main(){
int a= 1,b = 1;
int a_post,pre_b;
a_post = a++;
pre_b = ++b;
printf("a: %d\n",a);
printf("a_post: %d\n",a_post);
printf("b: %d\n",b);
printf("pre_b: %d\n",pre_b);
return 0;
}
输出结果是这样的:
a:2
a_post:1
b:2
pre_b:2
a和b都递增了1,但是,a_post是a递增之前的值,而b_pre是b递增后的值。这就是++的前缀形式和后缀形式的区别。
于是我们可以这样理解:
a_post = a++; 先把a的值赋给a_poset,然后a递增
pre_b = ++b; 先b递增,然后把b递增后的值赋给pre_b
递减运算符同理