黑马程序员技术交流社区
标题:
运算符计算顺序
[打印本页]
作者:
danielzyj
时间:
2014-3-26 11:58
标题:
运算符计算顺序
int n = 7 ;int b =2*n++; 结果:b=14 n=8
疑问:自增计算顺序不是在*前面吗?为什么结果不是16 8
作者:
awkflf11
时间:
2014-3-26 12:05
int n = 7 ;
int b =2*n++;
结果:b=14 n=8
结果:
因为如果是那样的话,,
你应该这样写的;
int b =2*(n++);
所以的结果:b=14 n=8
作者:
赵彦丰
时间:
2014-3-26 12:05
int n = 7 ;
int b =2*n++;
b= 2*7++
n++ 是说下一轮得运算得时候加上1
如果有循环得话
作者:
宋超2356
时间:
2014-3-26 12:15
这就是n++与++n的区别吧,如果
int n = 7 ;
int b =2*n++;//这里应该是b = 2 * n; n++;的运算顺序
int n = 7;
int b = 2 * ++n;//name输出一定是b = 16,n = 8
复制代码
n++是先运算后叠加,++n是先叠加1在运算
作者:
danielzyj
时间:
2014-3-26 12:22
宋超2356 发表于 2014-3-26 12:15
这就是n++与++n的区别吧,如果
n++是先运算后叠加,++n是先叠加1在运算
哦哦 非常感谢
作者:
H-Deka
时间:
2014-3-26 12:23
n++的结果用于下一次的运算
作者:
李东梁
时间:
2014-3-26 12:25
int n = 7 ;
int b =2*n++;
结果:b=14 n=8
复制代码
这条程序可以改成
int n = 7
;int b =2*n;
n++;
结果:b=14 n=8
这样明白了些了吧?
复制代码
作者:
Zero霖
时间:
2014-3-26 13:16
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
作者:
阳春烟景
时间:
2014-3-26 13:32
*的算符优先级大于自增(++)的算符优先级,先执行2*7,然后赋值给b,然后n自增1,得到8.。希望对你有用哦。。
作者:
橸瑩膤漃寞林
时间:
2014-3-26 13:49
因为n++是先给左边赋值,再自增,所以int n = 7 ;int b =2*n++; 这里把n为7套进去,先给左边赋值,b=14,完后,n再自增,n=8。如果这样写,int b = 2*++n,那么就是先自增再给左边赋值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2