标签:
自增(或者自减)
分类:
前自增 ++i
后自增 i++
前自增和后自增的异同:
相同:
最终都使 i 的值加 1
不同:
前自增整体表达式的值是 i 加 1 之后的值
后自增整体表达式的值是 i 加 1 之前的值
1 /* 2 2015年4月1日 12:06:06 3 目的:前自增与后自增的比较 4 5 6 */ 7 8 # include <stdio.h> 9 10 int main(void) 11 { 12 int i; 13 int j; 14 int k; 15 int m; 16 17 i = j = 3; //等价于 i = 3; j = 3; 18 k = i++; //后自增 19 m = ++j; //前自增 20 21 printf("i = %d, j = %d, k = %d, m = %d\n", i, j, k, m); 22 23 24 return 0; 25 26 } 27 /* 28 在VC6.0中运行结果是: 29 ----------------------------- 30 i = 4, j = 4, k = 3, m = 4 31 ----------------------------- 32 总结: 33 前自增整体表达式的值是 i 加 1 之后的值 34 35 后自增整体表达式的值是 i 加 1 之前的值 36 37 */
为什么会出现自增(或者自减):
1.代码更精炼
2.自增的速度更快( i++ 自增速度要快于 i += 1)
学习自增要明白的几个问题:
1.我们编程时应该尽量屏蔽掉前自增和后自增的差别
2. i++ 和 ++i 单独成一个语句,不要把它作为一个完整复合语句的一部分来使用
如:
int m = i++ + ++i + i + i++; //这样写不但是不规范的代码,而且是不可移植的代码(不同机器运行结果可能不同,因为牵扯到“顺序点”问题)
顺序点有三个: , () ;
标签:
原文地址:http://www.cnblogs.com/houhaibushihai/p/4383514.html