A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈伟` 中级黑马   /  2015-3-9 10:38  /  2035 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    求问 a++   和 ++a  在语法中得 区别   请各位高手详解具体点

21 个回复

倒序浏览
a++是a+1后再操作,++a是a+1之前操作a,这时候a还是原来的值,a再加1
回复 使用道具 举报 1 0
本帖最后由 waterfoxjie 于 2015-3-9 11:12 编辑

两个都是自加,区别在于:
a++是先使用a之后再进行自加,而++a是先进行自加,再使用自加之后的值
比如现在有个题是:
int a = 10;
int b = (a++) +(++a);
输出现在b跟a的值,你觉得答案是多少呢?!
(a++)这个地方是先使用a=10的值然后a自加等于11; (++a)是在a=11的基础上先自加等于12之后再进行运算。所以这里也可以写为是:10+12
b的值最终是等于22,a的值是等于12
希望我的解释你听的懂,不会被我绕晕哈~~

评分

参与人数 1技术分 +1 收起 理由
Micro + 1 很给力!

查看全部评分

回复 使用道具 举报
如果a=1
输出++a 会先执行++        再输出          ——结果为2
输出a++ 会先输出            再执行++     ——结果为1
回复 使用道具 举报
用汇编可以解释清楚
回复 使用道具 举报
本帖最后由 yafengxn 于 2015-3-9 11:25 编辑

同意楼上上的意见
回复 使用道具 举报
a++是a+1后再操作,++a是a+1之前操作a,这时候a还是原来的值,a再加1
回复 使用道具 举报
waterfoxjie 发表于 2015-3-9 11:06
两个都是自加,区别在于:
a++是先使用a之后再进行自加,而++a是先进行自加,再使用自加之后的值
比如现在 ...

谢谢  大神提示
回复 使用道具 举报
zhenghm 发表于 2015-3-9 10:40
a++是a+1后再操作,++a是a+1之前操作a,这时候a还是原来的值,a再加1

感谢 大神
回复 使用道具 举报
记住+在前就先加1,+在后就后加1就行了
回复 使用道具 举报
waterfoxjie 发表于 2015-3-9 11:06
两个都是自加,区别在于:
a++是先使用a之后再进行自加,而++a是先进行自加,再使用自加之后的值
比如现在 ...

非常  感谢   讲的 很细      以后有问题  直接请教你了
回复 使用道具 举报
陈伟` 发表于 2015-3-11 14:22
非常  感谢   讲的 很细      以后有问题  直接请教你了

;P相互学习~~
回复 使用道具 举报
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。  而 a = ++i,相当于 i=i+1; a = i;  而 a = i++,相当于 a = i; i=i+1;
回复 使用道具 举报
就看++和a谁在前,在前边的先取值,不过执行过后都是a增加1
回复 使用道具 举报
a++  先使用a  用完再加1   ++a    先加1  再用a
回复 使用道具 举报
waterfoxjie 发表于 2015-3-9 11:06
两个都是自加,区别在于:
a++是先使用a之后再进行自加,而++a是先进行自加,再使用自加之后的值
比如现在 ...

说的挺好
回复 使用道具 举报

谢谢~~~~
回复 使用道具 举报
卟離不棄 来自手机 中级黑马 2015-3-12 00:43:20
18#
不参加运算 都一样
参加运算时,a++是先操作数据,然后++:++a是先++:然后操作数据
回复 使用道具 举报
更深的理解了,之前看过视频有点忘了
回复 使用道具 举报
zhenghm 发表于 2015-3-9 10:40
a++是a+1后再操作,++a是a+1之前操作a,这时候a还是原来的值,a再加1

你的错了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马