C语言中,设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是 ?
答案:3 悬赏:10
解决时间 2021-03-22 05:53
- 提问者网友:余味
- 2021-03-21 22:42
为什么答案会是2,0,3的?求详细解析,谢谢O(∩_∩)O谢谢。。
最佳答案
- 二级知识专家网友:一起来看看吧
- 2021-03-21 22:49
a=b=1 //此时a值为1,b值为1;
a++ //a自增为2
b+1 //不对b的值产生任何影响
c=a+b-- //首先,b--优先运算,运算结果是1,然后b自减为0,此时a值为2,再算c,所以c值 为 a+(b--)值为2+1=3
a++ //a自增为2
b+1 //不对b的值产生任何影响
c=a+b-- //首先,b--优先运算,运算结果是1,然后b自减为0,此时a值为2,再算c,所以c值 为 a+(b--)值为2+1=3
全部回答
- 1楼网友:木子香沫兮
- 2021-03-22 00:57
先一句一句看
1. b=1
2. a=b=1,这里a=1
3. a++,注意这句,不同的编译器产生不同结果,有的编译器在这句执行完成后逗号表达式后面的值还都没执行a的值就已经变成2了!
4. b+1,不产生任何影响
5. c+a+b--,这句只对b产生影响,执行后b=0
最后结果a=2,b=0,c至始至终没改变过值,不同的编译器不一样的初始值,有的是0,不能确定。
- 2楼网友:狠傷凤凰
- 2021-03-21 23:29
a=b=1,//a=1 b=1 c=0
a++, //a=2 b=1 c=0
b+1, //a=2 b=1 c=0
c=a+b-- //a=2 b=0 c=3
//----------------------区别(i++)和(++i)-------给你个例子
int i=1;
int y=i++;// y=1 i=2 //i--同理
int i=1;int y=++i;// y=2 i=2 //--i同理
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯