java 中简单的小问题 没明白一个问题int a=0;int b=0;b=a++;这样 b=0 a=1了为什么a=a++;最终a=0 为什么a没变成1???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你知道a=a++是什么意思吗??a=a++就是先将a的值赋给a,然后再加!再好好理解!这个很重要的,后面有很多知识点会关系到这个的! 你可以这样理解,在计算的过程中,等式右边的变量编程其他的了 比方说a=a+1。在处理的时候,计算机内部会变成a,a1两个变量。 a1=a a=a1+1 然后再把a1销毁掉。 b=a++是这么做的:b=a,后a+1. http://blog.csdn.net/ZangXT/archive/2008/11/05/3229281.aspx 这样说吧 ,,b=a++;b是先等于a,a在++ 也就是b的直是a,而不是a++后的直。。所以说b=0 a=1如果b=++a,则是b等于++a,也就是 b=1,a=1;b=a++,因为a在+号前 所以没等a加加b就获得了a的直,所以只取到本身a直,b=++a,是a先加加过了 才把直给了b 所以ab都等于1。。明白了吗? b = a++;是先把a的值赋给b,然后再执行a+1操作b = ++a;是先执行a+1操作然后再赋值给b b=a++的意思是先将a的值赋给b,然后a+1,所以b=0 a=1a=a++的意思是先将a的值赋给a,此时a还是0,然后a+1,当然a就是1了 你可以先把那个b看做是a 啊~!都是个变量应该可以这么认为,b 能理解a 当然也能理解了!我也是初学者,去年学c 没学到东西,现在正在学JAVA 希望能与大家共勉! 你可以这样理解,在计算的过程中,等式右边的变量编程其他的了 比方说a=a+1。在处理的时候,计算机内部会变成a,a1两个变量。 a1=a a=a1+1 然后再把a1销毁掉。 有点意思!是在解释下面的结果为什么为0吗? int a=0; a=a++; System.out.println(a);我也有点疑惑,既然a自加是在赋值后,按道理应该会是1啊.如果改成:int a=0; int b=a++; System.out.println(a);此时a的值为1 a=a++为什么a没变成1;;;;这个问题和b=a++ 是一个道理,,你说的a=0,是只a=a+1中的第一个a,他的直 是0;也就是说句代码的输出结果是第一个a的直 也就是0;但是这时a 本身的值已经自加了,当你在用到a的时候 a的值就是1了;// 这个和编译器有关如果在VC就不一样在JAVA中也不一样 a=a++ 在计算机中的具体步骤是:1. a=a 2. a+1 所以a还是原来的值更多更新电影请到:http://sun.51zhuanzhuan.com 谁用过ireport+jasperreport做报表 poi 导出excel 如何生成树状生成结构图(用矩形文本框和画线来做出来) 如何获取一个类里面的所有参数,及参数值? 一个基础问题 java连接access数据库 一道画图作业题,搞了好久不行,救命啊~~ 我用jbuilder 2005运行jsp时,出现unable to find java class on classpath:jsp:usebean错误,是什么意思?谢了 java中如何得到系统的路径? MyEclipse那个版本好用 请教java.lang.Integer和int区别 求控制触摸板的代码 子类怎样调用父类的方法?
a=a++就是先将a的值赋给a,然后再加!再好好理解!这个很重要的,后面有很多知识点会关系到这个的!
比方说a=a+1。在处理的时候,计算机内部会变成a,a1两个变量。
a1=a
a=a1+1
然后再把a1销毁掉。
b=a,后a+1.
b=a++;b是先等于a,a在++ 也就是b的直是a,而不是a++后的直。。所以说b=0 a=1
如果b=++a,则是b等于++a,也就是 b=1,a=1;b=a++,因为a在+号前 所以没等a加加b就获得了a的直,所以只取到本身a直,
b=++a,是a先加加过了 才把直给了b 所以ab都等于1。。
明白了吗?
是先把a的值赋给b,然后再执行a+1操作
b = ++a;
是先执行a+1操作然后再赋值给b
a=a++的意思是先将a的值赋给a,此时a还是0,然后a+1,当然a就是1了
比方说a=a+1。在处理的时候,计算机内部会变成a,a1两个变量。
a1=a
a=a1+1
然后再把a1销毁掉。
int a=0;
a=a++;
System.out.println(a);
我也有点疑惑,既然a自加是在赋值后,按道理应该会是1啊.
如果改成:int a=0;
int b=a++;
System.out.println(a);
此时a的值为1
为什么a没变成1;;;;
这个问题和b=a++ 是一个道理,,
你说的a=0,是只a=a+1中的第一个a,他的直 是0;也就是说句代码的输出结果是第一个a的直 也就是0;但是这时a 本身的值已经自加了,当你在用到a的时候 a的值就是1了;//
如果在VC就不一样
在JAVA中也不一样