c语言选择题,求帮忙解答
c语言选择题,求帮忙解答求大佬写出第七题的解题步骤,不知道怎么感觉自己越学越糊涂了,老师说printf函数是从右到左运算,求大佬帮我算下解题思路...
c语言选择题,求帮忙解答求大佬写出第七题的解题步骤,不知道怎么感觉自己越学越糊涂了,老师说printf函数是从右到左运算,求大佬帮我算下解题思路
展开
3个回答
展开全部
逗号表达式的计算顺序是由左至右,所以
c=(a-=a-5),(a=b,b+3);
上面的逗号运算符它的优化先比=号要低,所以会先算
c=(a-=a-5);
a由于初始为0,所以运行完后a=a-(a-5),即a为5,然后做为一个整体赋给c,即c为5
之后是a=b,b+3,同样从左至右,结果为a=0,b+3在这里没什么用,没有参与运算,所以不影响结果,
最终的结果就是0,0,5
c=(a-=a-5),(a=b,b+3);
上面的逗号运算符它的优化先比=号要低,所以会先算
c=(a-=a-5);
a由于初始为0,所以运行完后a=a-(a-5),即a为5,然后做为一个整体赋给c,即c为5
之后是a=b,b+3,同样从左至右,结果为a=0,b+3在这里没什么用,没有参与运算,所以不影响结果,
最终的结果就是0,0,5
更多追问追答
追问
请问后面的b+3不是赋值运算符所以不用参加运算是吗
追答
是的,它既没赋值也没参与其它的运算
展开全部
a-=a-5即a=a-(a-5),a赋值为5,所以c值为5
之后的a=b,导致a值为0
所以输出0,0,5,选择B
之后的a=b,导致a值为0
所以输出0,0,5,选择B
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
和printf没有关系。这考的是逗号表达式的求值顺序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询