i++与++i经典分析
来源:互联网 发布:淘宝太坑了女主角视频 编辑:程序博客网 时间:2024/05/19 05:31
简单地分为两种情况来说明:
1. 作为单独语句存在,如下面的两段代码:
(1) int i=0;
if(i++){...}
(2) int i=0;
if(i++){...}
分析:上面的条件判断代码虽然是以单独语句出现,但编译器将其等价于i++(或++i)>0,故在第一段代码中先执行i>0判定,再执行i++,因此条件体里的代码不被执行;而在第二段代码中先执行i=i+1,再执行i>0,因此条件里代码会被执行。
2. 作为语句的一部分存在,如下面的一段代码:
int i=4,j=3;
if((i++=j++)!=4){...}
分析:上面的代码中括号()的优先级比!=的优先级高,但编译器仍然将++运算符最后执行。即先执行赋值语句i=j,然后判定(i=3)!=4成立,最后执行i++和j++,接下去执行条件体里代码。
3. 最后总结:
综上可知,当i++作为单独条件语句进行判定时,即使没有显示地声明与0的比较,编译器仍将加上与0的比较;当i++作为复合语句使用时,不管++是否在优先级更高的运算符中,++仍然最后才执行,即在当前所在语句操作执行之后。
- i++与++i经典分析
- i++与i--的分析
- 再次分析i++与i--
- (i++)+(i++)与(++i)+(++i)
- (i++)+(i++)与(++i)+(++i)
- (i++)+(i++)与(++i)+(++i)
- i++ 和 ++i 区别与分析
- i++与++i的探讨(效率分析)
- 对i++与++i的分析
- i++与++i的结果分析
- 今天面试时,碰到的经典问题++i与i++
- i++,++i,i=i+1 分析
- i=i++分析
- 实验:(++i)+(++i)+(++i) 与 (i++)+(i++)+(i++)
- (++i)+(++i)+(++i) 与(i++)+(i++)+(i++)表达式
- i++,i--与++i,--i 研究
- ++i *=i与 i++*= i
- i++分析
- jdk1.7新特性
- JQuery源码
- TCP状态图
- 惊爆眼球!视频解读游戏中DX9与DX11画质差别
- hr数据库
- i++与++i经典分析
- Direct3D 11 API 改编自Intro_to_Direct3D10
- Node(2) First Code
- Direc3D设备对象
- Direct3D 11设备介绍
- DX11多线程学习与思考
- "http://android.git.kernel.org/repo 打不开"问题解决
- HR代码
- 微博 0auth2.0 验证