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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 从未有过的晴天 中级黑马   /  2014-6-17 20:44  /  1273 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=0;
a=a++;
a的值为什么是0;
int a=0,b=0;
b=a++;
a的值是1;

6 个回复

倒序浏览
哪位大神给指导一下
回复 使用道具 举报
a++是运算后再相加
回复 使用道具 举报
a=a++;的过程是
  1. temp = a;// a++先取值a,temp=a=0;
  2. a=a+1;//a自增,a=1;
  3. a=temp;//最后那个=赋值,a=temp=0;
复制代码

同理,b=a++;的过程是
  1. temp=a;//temp=a=0;
  2. a=a+1;//a=1;
  3. b=temp;//b=temp=0;
复制代码
回复 使用道具 举报
++自增表达式,他可以分为前自增和后自增
int a = 0;
a = a++;这句话的意思你可以这样理解,整体式一个赋值运算,把右边的值赋值给左边,右边当成是一个表达式,a将自增前的值赋给左边,然后在自增1,所以a=0;
int a=0;b=0;
b=a++;
结果应该是 b=0,a=1,因为这句表达式是将a自增前的值赋值给b,然后a在自增一位,这个时候a就加1了,
如果是b=++a;那么结果就是b=1.a=1,
前自增的特点是先进行自增然后在赋值,
后自增是先赋值后自增,希望你能明白,如果不懂可以私我,420098321.大家一起努力吧

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报 1 0
一楼正解
回复 使用道具 举报
这个主要理解是先赋值还是先自增,我的你解释那个离等号近就先执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马