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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© danielzyj 中级黑马   /  2014-3-26 11:58  /  1337 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int n = 7 ;int b =2*n++;  结果:b=14  n=8  

疑问:自增计算顺序不是在*前面吗?为什么结果不是16  8

点评

建议认真再看遍毕老师的视频,如果还有疑问 请继续提问!!!  发表于 2014-3-26 15:13

10 个回复

倒序浏览
int n = 7 ;
int b =2*n++;

结果:b=14  n=8  



结果:
因为如果是那样的话,,
你应该这样写的;

int b =2*(n++);

所以的结果:b=14  n=8  
回复 使用道具 举报
int n = 7 ;
int b =2*n++;

b= 2*7++
n++  是说下一轮得运算得时候加上1

如果有循环得话
回复 使用道具 举报
这就是n++与++n的区别吧,如果
  1. int n = 7 ;
  2. int b =2*n++;//这里应该是b = 2 * n;  n++;的运算顺序

  3. int n = 7;
  4. int b = 2 * ++n;//name输出一定是b = 16,n = 8
复制代码


n++是先运算后叠加,++n是先叠加1在运算
回复 使用道具 举报 1 0
宋超2356 发表于 2014-3-26 12:15
这就是n++与++n的区别吧,如果

n++是先运算后叠加,++n是先叠加1在运算

哦哦 非常感谢
回复 使用道具 举报
n++的结果用于下一次的运算
回复 使用道具 举报
  1. int n = 7 ;
  2. int b =2*n++;
  3. 结果:b=14  n=8  
复制代码

这条程序可以改成
  1. int n = 7
  2. ;int b =2*n;
  3. n++;
  4. 结果:b=14  n=8  

  5. 这样明白了些了吧?
复制代码
回复 使用道具 举报
n++表示的意思是先使用n的值,再进行自加,拆成两步即b=2*n;n=n+1;而++n的意思是先自加然后再使用n的值,拆成两步即n=n+1;b=2*n。所以这里int b=2*n++相当于int b=2*n;n=n+1;输出的值就是14,8
回复 使用道具 举报
*的算符优先级大于自增(++)的算符优先级,先执行2*7,然后赋值给b,然后n自增1,得到8.。希望对你有用哦。。
回复 使用道具 举报
因为n++是先给左边赋值,再自增,所以int n = 7 ;int b =2*n++; 这里把n为7套进去,先给左边赋值,b=14,完后,n再自增,n=8。如果这样写,int b = 2*++n,那么就是先自增再给左边赋值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马