黑马程序员技术交流社区

标题: 关于++/--的问题 [打印本页]

作者: 白马程序猿    时间: 2015-7-4 21:22
标题: 关于++/--的问题
基础班才刚刚开课,接触了这个概念,比如
int x=10;
x=x++;
sop(x)=10;
但是
int x=10;
y=x++'
sop(x)=11;
理解起来有点困难,才第二天上课,需要后边的哪部分知识才能理解啊,或者哪位大神试着给新手说说。
作者: 小骆驼    时间: 2015-7-4 21:28
y=x++;先赋值再++这个代码执行结果为先把x的值赋给y所以y=10,然后x++就是x=x+1,所以x=11.
作者: 々白点潜心ザ    时间: 2015-7-4 21:33
你这y=x++完了之后,打印的还是x的值,x++之后就是11啦,如果你打印y的值就会是10的。
作者: threeforPP    时间: 2015-7-4 21:34
++n在前,就是先自增一,然后再参与运算;n++在后就是先让n参加运算,然后再自增一
作者: 白马程序猿    时间: 2015-7-4 21:40
小骆驼 发表于 2015-7-4 21:28
y=x++;先赋值再++这个代码执行结果为先把x的值赋给y所以y=10,然后x++就是x=x+1,所以x=11. ...

你说的这个我知道,我两个都是sop(x),为什么一个是10,一个是11?
作者: 白马程序猿    时间: 2015-7-4 21:41
々白点潜心ザ 发表于 2015-7-4 21:33
你这y=x++完了之后,打印的还是x的值,x++之后就是11啦,如果你打印y的值就会是10的。 ...

恩  那x=x++;  x 输出是10是为什么呢
作者: 々白点潜心ザ    时间: 2015-7-4 22:11
白马程序猿 发表于 2015-7-4 21:41
恩  那x=x++;  x 输出是10是为什么呢

试了一下,的却想你说的那样,明白了求告知:)
作者: 白马程序猿    时间: 2015-7-4 22:20
々白点潜心ザ 发表于 2015-7-4 22:11
试了一下,的却想你说的那样,明白了求告知

好的,我这边才 基础班第二天,估计要用到后边的知识吧,老师提了一句,用什么副本,涉及到内存的知识
作者: 帅帅loyal    时间: 2015-7-4 22:30
你要先理解x++的含义,x++意思是先用了x的值 ,然后x的值再加一,然后加完1的值等到下次调用的时候才会用到
第一个例子,是把x++的值赋给了x,这里的意思就是说。把x的值付给了x,最后打印的是x的值。那个加一的动作是在赋值之后进行的,所以在打印的时候打印的不是加完后的值
第二个例子,是吧x++的值付给了y..这个动作完了之后x加一了。最后打印的值就是加完一的值11
作者: Queen_one    时间: 2015-7-4 22:36
++在后,先用后加. 这时候x++ 会产生一个临时的量, 这个量相当于x的一个副本,然后将x的值自增, 将副本的值返回.
                       
作者: 小骆驼    时间: 2015-7-5 18:02
白马程序猿 发表于 2015-7-4 21:40
你说的这个我知道,我两个都是sop(x),为什么一个是10,一个是11?

x=x++;sop(x)括号中的x是左边的x
作者: 林沐风    时间: 2015-7-5 21:02
从左往右看,是运算符的就先运算,是变量名的就先赋值
作者: life木子飞    时间: 2015-7-5 21:14
也是一愣一愣的
作者: 半山岩    时间: 2015-7-5 21:28
++、--放在操作数前面是先进行自增或自减再进行其他运算;如果放在操作数后面,则先进行其他运算再 自增或自减,对照例子细细体会着两句话就可以明白了
作者: 鲤鱼仙    时间: 2015-7-5 21:31
a++ 的运行顺序是这样的      如果有a被调用的话 那么先把啊赋值出去  然后自身自增1   ++a  相反先自增1然后才被调
作者: 胡家兵    时间: 2015-7-5 21:48
x++意思是先用了x的值 ,然后x的值再加一,然后加完1的值等到下次调用的时候才会用到.--也是一样的
作者: shanshan33    时间: 2015-7-5 21:56
我想问下sop()怎么理解?求指教
作者: hp_discuz    时间: 2015-7-5 22:46
++X:如果x=5,++X的话是X先变成6在参加后续的计算,例如:(1) b=++X;这时的b=6,x=6;(2)  b=X++;这时的b=5,x=5,当这条语句执行完后x才能变成6。
作者: 白马程序猿    时间: 2015-7-6 21:30
shanshan33 发表于 2015-7-5 21:56
我想问下sop()怎么理解?求指教

33老师啊,我是0702班的:handshake,sop()就是System.out.println()的简写
作者: shanshan33    时间: 2015-7-6 23:34
白马程序猿 发表于 2015-7-6 21:30
33老师啊,我是0702班的,sop()就是System.out.println()的简写

为什么我是33老师啊??费解
作者: wanghua1    时间: 2015-7-7 00:27
学习了!!!!
作者: 白马程序猿    时间: 2015-7-7 21:19
shanshan33 发表于 2015-7-6 23:34
为什么我是33老师啊??费解

不是吗?  你叫这个名字  ,都会这么认为的




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