假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是
A.7 B.8 C.6 D.2
我想问,去到b++那里,b不是先赋值b=b,然后再b+1吗,这时候不是b还是等于5吗。。?
你说的那个时候b=6,b++ 是代表b先参与运算 在进行++操作 这是指 在一行语句中 题目中你分成了两句 这样的话b++ 执行过后 在执行a+b 到a+b的时候b已经等于6
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
这个题可以理解为(a=2,b=5,c=b++,a+c)
b++等于6之后,再运算的a+b
最终a+b=8。如果int i=b++,i为5;如果int i = ++b,i为6。但不管何种情况b的值都自增了1,所以b的值应为6。
语句以逗号分开,是依次进行运算,现在不是5,而是6
你要是在b++处 这样写 int c = b++;
此时的c 是5
不是b+1而是自增1
B~~~~~~~~~~
自己写一个程序调试下就知道了
写个程序,多找几个这样的例子你就明白了
有这样一句话,你就明白了:a++是先干活后自增(遇到分号就干完活了),++a是先自增后干活。所以这道题的答案是7