黑马程序员--算术运算符
来源:互联网 发布:linux ftp下载速度慢 编辑:程序博客网 时间:2024/06/05 16:08
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
算 术 运 算 符
1.(1)算术运算符++的原理分析:
int a=3;//定义一个整型变量a并初始化值为3
a++;//这个相当于a=a+1;先将a自增1并赋值给a
System.out.println("a="+a);//输出a
我们可以看出,此时a得到了新的值为4。但是,当我们把a++换成++a的时候,此时又是什么结果呢?
int a=3;//定义一个整型变量a并初始化值为3
++a;//这个相当于a=a+1;先将a自增1并赋值给a
System.out.println("a="+a);//输出a
此时,我们得到的结果是一样的a=4。那么a++与++a的区别又是什么?
(2)我们可以看看下面的案例:
int a=3,b;//定义两个int类型的变量a和b,并将a进行初始化值为3
b=a++;
System.out.println("a="+a+",b="+b);//a=4,b=3
这时出现的结果是:a=4,b=3;那么,我们是否可以初步理解:b=a++;这条语句的含义是:先将a的初始化值3赋值给b,然后,a进行自增运算并赋值给a。
当我们把b=a++;换成b=++a的时候,此时,程序输出的结果会不会发生改变呢?
int a=3,b;//定义两个int类型的变量a和b,并将a进行初始化值为3
b=++a;
System.out.println("a="+a+",b="+b);//a=4,b=4
我们可以看出此时a和b的结果是一样的,那么我们是否可以初步理解:b=++a;这条语句的含义是:a先进行自增运算,然后将运算后的结果赋值给b
根据结果,我们对b=a++;和b=++a;这两条语句的初步理解看似是正确的,但是事实上真的是如此吗?
我们先拿b=a++;来分析:
首先我们来看看一下,它的内存图是什么样的?
因为b=a++;时,b要先做一个赋值运算,所以,我们先用1把b标识出来,假设b已经先存在了。b=a++;正确的运算原理应该是:先把右边运算完之后,再赋值给左边。也就是说a++要先进行运算,因为a自身的值要参与其他运算,那么这个时候就先用一个临时区域纪录下a的值,我们用2标识。这个时候,a就把自己的值取出来到方法区中进行自增的运算(也就是加1),方法区运算出来的结果再赋值给a。直到这个时候,右边的运算才运算完。这个时候就要把a的值赋值给b,那么它就会把之前存储在临时区域的值3赋值给b,所以,我们才得到最后的结果:a=4,b=3
同理,我们可以推出:b=++a;因为++在前面,所以先进行++运算,即:3+1=4,得到a的值为4,然后,再赋值给b。
(3)既然,我们已经了解++运算的工作原理,那么我们在来看看下面的情况:
int i=3;
i=i++;
System.out.println("i="+i);
这个时候i又是多少呢?
(友情提示:i得到的最终值是临时区域存储的值)
2.(1)算术运算符--的原理分析:
基本和++致,理解了++很容易理解--,这里就不做具体分析了。
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
- 黑马程序员--算术运算符
- 黑马程序员—算术运算符
- 黑马程序员—算术运算符
- 黑马程序员-数据类型的转换,算术运算符,逻辑运算符
- 黑马程序员——C基础之算术运算符
- 黑马程序员---Java基础学习之算术运算符、赋值运算符、比较运算符、逻辑运算符
- 黑马程序员-运算符
- 黑马程序员_04_算术_转移_逻辑_位_三元_运算符_判断语句
- 黑马程序员-----Java基础知识---常量---进制----变量---运算符(算术--赋值--比较--逻辑--位--三元)----if语句---switch语句
- 4.黑马程序员-运算符
- 黑马程序员----运算符重载
- 黑马程序员--运算符、表达式
- 黑马程序员--C#运算符
- 黑马程序员--java运算符
- 黑马程序员_运算符
- 黑马程序员-位运算符
- 黑马程序员_java运算符
- 黑马程序员--算数运算和运算符
- jQuery对select的基本操作
- linux2.6.22.6驱动源码框架分析
- C文件操作函数fscanf和fprintf的使用
- mybatis高级应用系列一:分页功能
- 中国生活最安逸十大城市
- 黑马程序员--算术运算符
- linux的一些操作
- 自定义Web Tab控件
- Android实现自定义的 时间日期 控件
- 在Windows2003 R2上安装WinDBG
- xen 漫漫人生路
- 虚函数2
- 一步步开发 Spring MVC 应用
- hdu2504 又见GCD