黑马程序员技术交流社区

标题: 终于弄明白的细节 [打印本页]

作者: mingtianrsm    时间: 2014-10-2 16:04
标题: 终于弄明白的细节
以前对于int a = 3; int b = a ++;这个理解不是很清楚,看了几遍视频,在换了形式后还是会出错,现在终于弄明白了。
对于
int a = 3;
int b = a++;
可以将int b = a++;解析为:
int temp = 3;
a = a +1;
b = temp;
其内存中的运算过程与排序时我们定义中间变量差不多原理。

作者: 唐王潮    时间: 2014-10-2 16:23
int b = ++a ,int b = a++ 做一次运算。结果都清楚吗?
作者: mingtianrsm    时间: 2014-10-2 16:38
唐王潮 发表于 2014-10-2 16:23
int b = ++a ,int b = a++ 做一次运算。结果都清楚吗?

第一种的结果貌似还没试~:L
作者: mingtianrsm    时间: 2014-10-2 16:42
唐王潮 发表于 2014-10-2 16:23
int b = ++a ,int b = a++ 做一次运算。结果都清楚吗?

好吧,有点草木皆兵了,这个就是很简单的将后面的运算结果赋值给前面吧~
作者: 唐王潮    时间: 2014-10-2 17:30
mingtianrsm 发表于 2014-10-2 16:42
好吧,有点草木皆兵了,这个就是很简单的将后面的运算结果赋值给前面吧~ ...

int a = 3; int b = a ++ ;b = a + b  b结果为7
int a = 3; int b = ++a ;b = a + b  b结果为8
小东西,弄明白其实就没多大问题了.
作者: -天然呆ノ    时间: 2014-10-2 19:26
int b = ++a;是先进行自增再赋值
int b = a++; 是先进行赋值 再自增

作者: 朴日男    时间: 2014-10-2 20:00
毕老师的比喻很经典,你可以参考下
int b = ++a;回家(家代表++)吃完饭,再出去玩(玩代表赋值)
int b = a++; 先出去玩(玩代表赋值),再回家(家代表++)吃饭
作者: yl82846094    时间: 2014-10-2 20:54
学习了.....
作者: zuochbd    时间: 2014-10-2 21:03
对于
int a = 3;
int b = a++;
可以将int b = a++;解析为:
int temp = 3;
a = a +1;
b = temp;
=============
这个理解仍然是有问题的.
应该是:
int temp = 3;
b = temp;
a = a +1;
注意一点: a=a+1;是在 b=temp之后执行的.

其实这么看:
int a = 3;
int b = a;
a = a+1;
没必要再引入一个temp变量.
作者: 夕默    时间: 2014-10-2 21:48
mingtianrsm 发表于 2014-10-2 16:38
第一种的结果貌似还没试~

这种结果的值是b=a+1哦!如果是++a,就表示先给a加个1再赋值给b,如果是a++就表示先把a赋值给b,然后再a自加1。
再还有多维数组的运算,也是要注意的重点哇!
作者: ql627666537    时间: 2014-10-3 00:21
使用后加1
作者: sublimter    时间: 2014-10-3 09:49
受教了~~~
作者: 白金角斗士    时间: 2014-10-3 10:45
呵呵。 加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2