还是做鱼C考场题目时有些问题难以理解
设有定义 int a = 2, 下列表达式的值不为6的是A.a * 2, a += 2
B.a *= a + 1
C.a *= ( a + 1)
D.a ++, a *= 2
A选项难道不是先计算a*2=4,然后4+2=6吗?
答案是什么? 我感觉答案是B A.a * 2, a += 2
B.a *= a + 1
C.a *= ( a + 1)
D.a ++, a *= 2
[]内是我分析的。计算方式 a*2是等于4,但是给a赋值了么?a*2只是个过程变量,所以A选项a只等于4 oggplay 发表于 2014-7-25 20:25
a*2是等于4,但是给a赋值了么?a*2只是个过程变量,所以A选项a只等于4
那a ++, a *= 2 是不是a++意味着3赋值给a了,然后3*2? forever396888 发表于 2014-7-25 20:35
那a ++, a *= 2 是不是a++意味着3赋值给a了,然后3*2?
++运算符比如i++,这是自加运算符。i++相当于i=i+1。 oggplay 发表于 2014-7-25 20:39
++运算符比如i++,这是自加运算符。i++相当于i=i+1。
谢谢! oggplay 发表于 2014-7-25 20:39
++运算符比如i++,这是自加运算符。i++相当于i=i+1。
再向你请教一个问题。int k, i=3;k=(i++)+(i++)+(i++);为什么结果是i最后为6,k为9实在难以理解!
forever396888 发表于 2014-7-25 20:41
再向你请教一个问题。int k, i=3;k=(i++)+(i++)+(i++);为什么结果是i最后为6,k为9实在难以理解!
理解好运算符优先等级就好,不要钻牛角尖。这个问题具体看编译器怎么解释。 ,的意思就是,取后边那个结果:dizzy: 新手。
我认为A选项是a*=2,a+2就等于6了
页:
[1]