对x++和++x的理解
来源:互联网 发布:淘宝联盟怎么没有佣金 编辑:程序博客网 时间:2024/05/18 00:40
[笔试面试]对x++和++x的理解
首先看一段程序:
int main(void){ int x = 3; printf("x=%d, x++=%d, x=%d\n",x, x++, x); printf("x=%d, ++x=%d, x=%d\n",x, ++x, x); printf("x=%d, x++=%d, x=%d\n",x, x++, x);}
执行结果:
x=4, (x++)=3, x=4
x=5, (++x)=5, x=5
x=6, (x++)=5, x=6
1、x++是整体先返回x当前的值即(x++)=3,然后再执行++操作,执行完++操作之后x就=x+1了,所以这里x=4了。这里是因为x++的优先级比较高,所以先执行x++之后,再执行打印操作。
2、++x是先对x执行++操作即x=x+1,之后再整体返回执行完++操作之后的值,上步操作x=4,所以这里x=5,然后此时的x也=x+1了。显然这里的++x的优先级也是比一般操作要高的,所以这里仍然是先执行++x,后执行打印操作。
分解‘i=x++;’语句:
①i=x;
②i=i+1;
此后,x不变而i比x大1。然而当再次使用或者引用到x的值的时候,x的值就已经执行过++操作了,所以x就=x+1了
分解‘i=++x;’语句:
①x=x+1;
②i=x;
此后x=i=原来的“x”+1。
- 对x++和++x的理解
- resizableImageWithCapInsets认知和对@2x图片的理解
- 谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解
- 谈谈对quick-cocos2d-x和cocos2d-x lua的区别理解
- [笔试面试] 对x&(x-1)的理解
- [笔试面试] 对x&(x-1)的理解
- 对(x&y)+((x^y)>>1)的理解
- 【学习笔记】对 (x&y) + ( (x^y)>>1 ) 的理解
- 对cocos2d-x的初步理解
- 对++x,x++的思考
- 透彻理解Java中的++运算(x++和++x的区别)
- 浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用
- 我对XCode之Cocosd-x工程项目的理解
- ++x和x++的区别
- Hadoop2.x对Hadoop1.x的改进
- x&(x-1)和x&(-x)的讲解
- x = x.view(x.size(0), -1) 的理解
- x&(-x)如何理解
- 嵌入式学习笔记(17)——AVR单片机之头文件简介和使用
- firefox 显示网页加载时间的插件
- 关于fork&exec之进程的创建和可执行程序的加载过程
- 数字金额转大写
- 基于Twisted的网络服务器编写
- 对x++和++x的理解
- Oracle常用命令
- ORACLE数据库表空间迁移--关于表和索引
- YARN:下一代MapReduce的架构
- 自顶向下的考虑问题
- Cocos2d-x里面如何实现MVC(六)
- Extjs中利用combobox实现全国省市级联
- Android: 判断service运行状态
- D3DPOOL(资源池)