x++ 和 ++x
来源:互联网 发布:java远程读取电脑文件 编辑:程序博客网 时间:2024/06/11 07:19
int x=0
int y=++x + x++ + x++
先计算++x,则变为int y=1 + x++ + x++,此时x=1;再计算x++,因为是先使用x再进行自增运算,所以变为int y=1 + 1 + x++,此时x为2;继续计算x++,同理,先使用x再进行自增运算,所以变为int y=1 + 1 + 2,此时进行x自增运算,x为3。
int y=++x + x++ + x++
先计算++x,则变为int y=1 + x++ + x++,此时x=1;再计算x++,因为是先使用x再进行自增运算,所以变为int y=1 + 1 + x++,此时x为2;继续计算x++,同理,先使用x再进行自增运算,所以变为int y=1 + 1 + 2,此时进行x自增运算,x为3。
即x++是先赋值后加1,++x是先加1然后赋值。
下面是字节码文件分析:
p++分3步执行,执行后p的值在内存中被更新,但是后续使用这个表达式的值用的是加1之前的值(存在寄存器里)。
++p分两步执行,之后使用这个表达式的值用的是内存里p更新后的值(如果不用值一条指令就够了)。
如下例:
阅读全文
0 0
- 关于x++和++x
- x++ 和 ++x
- X-Cache和X-Pad
- (char*)&x 和 char*&x
- X和!!X 相等么?
- 关于++x和x++区别
- ++x和x++的区别
- X x;和 X x();有什么区别?
- x&(x-1)和x&(-x)的讲解
- 老问题:关于X++和++X及其X=X++
- $X
- X
- X
- X
- x
- x
- X
- /x
- Idea 常用快捷键
- Table_viewpaper1
- angular 增删改查(全部删,价格段,框排序,+-,小计,总价)
- markdown编辑事件处理
- 从H264中提取NAL
- x++ 和 ++x
- xpath常用介绍
- constraint layout 约束布局,percent layout的终结者
- CSS position属性和实例应用
- javascript中的对象序列化
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- mylistview+pulltorefresh+多条目
- spring MVC 零配置
- opencv-2.4.13.4在ubuntu16.04安装遇到的一些问题