作业帮 > 综合 > 作业

C语言的条件运算RT 当a=0时a=a+3,a+4可以解释为先a+3=3,然后a+4=7,所以答案a=7.那当a=3,b

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/11 20:59:01
C语言的条件运算
RT 当a=0时a=a+3,a+4可以解释为先a+3=3,然后a+4=7,所以答案a=7.那当a=3,b=4时,c=(a,b)为什么在VC6.0上答案是4呢?不是应该a+b=7吗?
这个叫逗号运算.a=a+3,a+4 因为没有括号,所以a的结果是3,后面的a+4并没有赋值语句啊,他不是a=a+4,但是a=a+3,a+4整句的值是7.c=(a,b) 有括号,逗号运算会取a、b中最后一次运算的结果b,所以c就是4了
再问: 我记得是说“,”要先算表达式1再算表达式2,之后两个相加。如果按照你说的,是不是就是a=,在有小括号时,应取最后一次运算,即是表达式2的值,没小括号时,直接是表达式1的值赋给了a?对吗?那这样的话,表达式1赋给了a后,那后面的没什么用了?","没啥用了哇?
再答: 对啊。它有没有赋值号,又没有被括号括起来,当然没有用了。而且逗号运算也不是相加,而是取最后的那次运算。上面说的7是 (a=a+3,a+4) 整体的值,比如:如果 a=(a=a+3,a+4) 那么a的值就是7了。