携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
递增运算符(++)
递增运算符执行简单的任务,将其运算对象递增1.有两种方式使用运算符:
- ++出现在变量前面,这是前缀模式;
- ++出现在变量后面,这是后缀模式
两种模式的区别在于递增行为发生的时间不同。我们先看看它的相似处,再看不同的地方。
举一个递增的例子
#include <stdio.h>
int main(){
int ultra = 0,super = 0;
while (super < 5)
{
super++;
++ultra;
printf("super = %d,ultra = %d\n",super,ultra);
}
return 0;
}
运算结果
该程序两次同时计数到5,用下面两个语句分别代替程序中两个递减语句,跟下面两个语句效果是一样的:
super = super + 1;
ultra = ultra + 1;
例子中的++就是对这个语句的缩写。为了让程序更加简洁,可读性更高,更美观对它们进行简化。还有一个优点是它生成的机器语言代码效率更高,因为它和实际的机器语言指令相似。当然,现在编译器很智能,这个优势不是很明显。一个智能的编译器可以把 x =x + 1;当作 ++x。
前后缀的区别
- 看例子
#include <stdio.h>
int main(){
int a = 1,b=1;
int a_post,pre_b;
a_post=a++; //后缀:使用a的值之后,递增a
pre_b=++b; //前缀:使用b的值之前,递增b
printf("a a_post b pre_b\n");
printf("%1d %5d %5d %5d\n",a,a_post,b,pre_b);
return 0;
}
- 运行结果
a,b都递增了1,但是,a_post 是a递增之前的值,而pre_b是b递增之后的值。这就是++的前缀形式和后缀形式的区别。
- 前缀
q=2*++a; 首先,a递增1;然后,2乘以a,并将结果赋给q。
- 后缀
q=2*a++; 首先,2乘以a,并将结果赋给q;然后,a递增1。
前缀形式和后缀形式会对代码产生影响,大家使用的时候具体问题具体分析。
递减运算符:--
每种形式的递进运算符都有一个递减运算符与之对应,用--代替++即可:
--count; //前缀形式的递减运算符
count--; //后缀形式的递减运算符