99问答网
所有问题
C语言问题 为什么a=(b=3,b+5,b++);的结果是3 而a=(b=2,++b,b+5);的结果是8?
a=(b=3,b+5,b++);的结果是3 而a=(b=2,++b,b+5);的结果是8?
请说明下具体过程 谢谢
举报该问题
推荐答案 2014-03-29
逗号表达式中最后一个子表达式的值作为整个表达式的值被返回。
所以第一个表达式可以等价为下面的表达式序列:
b=3;
b+5;
a=(b++);
执行到第三个子表达式的时候,整个表达式的执行过程是:a=b;b=b+1;所以很显然,a=3。
对于第二个表达式,可以同样的分析。
等价的表达式序列为:
b=2;
b=b+1;
a=(b+5);
执行了前两个表达式b的值为3,那么执行第三个表达式的时候就会得到a=8。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/7e7evevvzO7vXvjW7B.html
相似回答
C语言
中
(a=2,b=5,b++,
a
+b)为什么是8
而不是7
答:
而
(a=2,b=5,b++
,a+b)的话
b++的
值已经丢掉了,并没有使用在计算里,b自增1 a+b已经是计算b自增过后的值,所以
是8
C语言问题
答:
1> int a,
b=2;a=++b;
//
a=3, b=3
(
先对b作自增运算,再赋值给a)2> int a,
b=2;a=b++;
//
a=2,
b=3 (先取b值赋给a, 再对b作自增运算)按以上规则, 表达式 int
a=5,b;b=
++a*--a;执行顺序为: 先对a作自减运算(--a),则a=4, 再作计算: ++a, 则a=5...
(a=5,b=2,
a
++,
a
+b)为什么
这个表达式在C++中的值
是8
答:
a=5 ,b=2 ,
a++这都容易理解,最后
结果是
a
+b的结果,
这就是6+2
c语言
++
-- 题
,为什么?
答:
接下来做第二个乘法时,又有一个先自减,仍然是b,这一回b从2减成1了,再取出b(1)跟4相乘,得到y=4×1=4。这就是b=1,y=4的来历。不过,这样的计算过程和结果有很大的不确定性,不同的编译器结果会不一样。所以,研究这些东西,意义不大。明白就好了。有
什么问题
请留言。
关于
C语言的问题
答:
先自加或者后自加。如果其他的编译器,可能得到一、
的结果是3
+4
+5=
12,也就是说i逐一变化。第二个条件表达式如果?前面成立,就执行a++,如果不成立,执行
b++;
不过他判断的时候先判断--a与b的大小关系,也就是说a变成了4,然后不管怎样,b自加。因为不成立,执行
b++,
继续自加,变成5,。
C语言(a=2,b=5,b++,
a
+b)
这个
括号
表达式的值怎么算
答:
(a=2,b=5,b++,
a
+b)
这个叫逗号表达式,其值为最后一个表达式a+b的值8。
c语言
求指点a
++问题
。
答:
printf(" %d %d %d",(a
++,b++
,a
+b)
,
a,b);
你理解错了 之所以输出
2 ,5
是因为printf的缘故 printf是反向操作的,也就是先从末尾开始操作再向前 也就是先执行的是b然后是a 然后才是 (a++,b++,a+b)所以输出
2,5
c语言
小
问题
答:
提示:invalid operands to binary (18)若变量已正确定义并赋值,下面符合
C语言
语法的表达式是 A)m∶
=5
B)
c=
b=a=
1 C)float 8%5 D)x
+5=
y+2 这是
c语言的
国家等级考试试题 答案是b 所以你看的书要不是作者印错了 要不就是你看错了。我想这个问题你可以结贴了。谢谢你的提问。
c语言
中 假设所有变量为整型 则
(a=2,b=5,a++,b++,
a
+b)
值为多少?
答:
(a=2,
b=
5,a++,b++,
a
+b)
叫逗号表达式,其值为最后一个表达式a+b的值,其计算是从左到右进行的,因此a
+b=3+
6=9,整个表达式的值为:9。
大家正在搜
int a=1,b=2,c=3;
关于C语言的问题
ab在c语言中什么意思
c语言(a,b)
a=b b=c 所以a=c
c语言a加b的和
int a=0,b=0,c=0
c语言m=a>b
C语言输入两个整数a和b求和
相关问题
C语言中a=3,b=5,则(a||b)+2<=3的值为什么,...
C语言中 (a=2,b=5,b++,a+b)为什么是8而不是...
C语言上的问题 !(a+b)+c-1&&b+c/2的值 a=...
C语言中 int a=5,b=-3,c=4;printf("...
C语言int a=5,b = (a++)+3 ,b=?为什么
新手C语言问题,a=(b=4)=3;为什么是错误的,而(a=...
当a=3时b=(++a)+(++a)为什么在 C++ 里输出...
C语言中,a=3,b=4,c=5; a||b+c&&b-c怎...