易错点小消除--递增运算符
来源:互联网 发布:联通显示4g但没有网络 编辑:程序博客网 时间:2024/05/23 15:35
对于我们常见的递增运算符,如果不加以搞清楚,很容易会导致在默写细节的地方出错。特别是在边界条件的时候。比如说:
int x=4;
int y=5;
y=x++;
我们都很容易就会知道答案是4,但是下面的情况稍不留神就会导致结果的大不相同咯。
int x = 0; System.out.println(((x++)-(++x))); System.out.println(((++x)-(x++)));
运行结果:
-20
是不是感觉很不可思议啊,那么我们一起看一看代码的执行顺序吧。
首先对于第一个输出语句,我们都知道括号的优先级是高于逻辑运算的优先级的,所以程序先执行括号内的,按照从左至右的顺序依次执行,所以x=0,然后X自增为1,在自增为2,所以0-2=-2,这就是结果了;同样的按照这个方式我们也可以算出,第二个式子X先自增为1,然后减1,变为零,所以结果就是0;
虽然上面的结果看起来很奇怪,但是这就是真正的代码的执行原理。
下面再我们一起看一下X最后的取值到底是多少吧。这样才能真正的做到了然于胸:
第一个式子:
int x = 0; System.out.println(((x++)-(++x))); System.out.println("x= "+x); //运行结果: /* -2 x= 2 */
第二个式子:
int x = 0; System.out.println(((++x)-(x++))); System.out.println("x= "+x); //运行结果: /* 0 x= 2 */
是不是感觉自己的逻辑一下字清晰了不少啊,文笔较拙,共同进步。
1 0
- 易错点小消除--递增运算符
- 关于递增运算符
- 递增和递减运算符
- 递增和递减运算符
- 递增运算符&&递减运算符
- C语言的递增运算符详解
- 35. PHP 递增/递减运算符
- C++ 递增/递减运算符和指针
- 运算符——递增++和递减--
- (22)赋值运算符、递增和递减运算符
- C++中前置递增运算符和后置递增运算符的区别
- 补码消除减法运算
- PHP字符串递增运算
- [读书笔记]C++基础知识温习:重载递增/减运算符
- 第四章 4.5 递增和递减运算符
- 解引用和递增运算符混用来遍历vector
- C++ 递增运算符:前置++和后置++的区别
- 【C++学习笔记】递增/递减运算符和指针
- String painter(DP综合题:区间DP(两次DP))
- python中的常用函数
- 工作备忘-获得游戏在线时长
- 双向循环链表的增删查操作
- Thread.setDaemon详解
- 易错点小消除--递增运算符
- css规范
- stm32调试内存越界情况
- 添加购物车动画实现
- 关于质数的求解
- hdu 1712 分组背包
- mavend使用
- 使用ALAssetsLibrary读取所有照片
- iOS9适配