自增/自减
分类
前自增 ------- ++i
后自增 ------- i++
前自增和后自增异同
相同: 最终都是i+1
不同: 前自增整体表达式的值是i+1之后的值
后自增整体表达式的值是i+1之前的值
#include <stdio.h>
int main(void)
{
int i,j,k,m;
i = j =3;
k = i++;
m = ++j;
printf("i = %d, j = %d, k = %d, m = %d\n", i, j, k, m);
return 0;
}
/*
i = 4, j = 4, k = 3, m = 4
Process returned 0 (0x0) execution time : 0.018 s
Press any key to continue.
*/
为什么会出现自增
代码更精炼
自增速度更快
i++ 直接放到寄存器内处理
i+=1 数据从内存取出放入寄存器+1再将值赋给变量
学习自增要明白的几个问题
1.我们编程时应该尽量屏蔽掉前自增和后自增的差别
2.自增表达式最好不要作为一个更大的表达式的一部分来使用 或者说 i++和++i 单独成一个语句,不要把它作为一个完整的复合语句的一部分来使用
exp: int m = i++ + ++i + i + i++ // 这样写不但是错的而且不可移植
顺序点: ()、;、,