永发信息网

C语言中表达式1‖表达式2&&表达式3为什么不先算表达式2 急急急!!!

答案:1  悬赏:50  手机版
解决时间 2021-04-18 22:32
  • 提问者网友:黑米和小志
  • 2021-04-18 15:52
C语言中表达式1‖表达式2&&表达式3为什么不先算表达式2 急急急!!!
最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-04-18 16:19
在C语言中,或(||)的优先级低于与(&&)的优先级,也就是说,无论表达式1,表达式2,表达式3的值是真或者是假,都是做以下关系运算: 表达式1的值 || (表达式2的值 && 表达式3的值) ,和他们的具体值无关。你的说法是不对的,因为此逻辑表达式是先求出||右侧的值,然后再与||左侧的值作关系或运算,如果想先算前面可以在前两个表达式上加(),(表达式1‖表达式2)&&表达式3追问表达式1的值 || (表达式2的值 && 表达式3的值)不是要先算括号里的吗追答是的,
表达式1‖表达式2&&表达式3
就等于
表达式1的值 || (表达式2的值 && 表达式3的值)追问就是啊 那括号里就是先执行表达式2呀 可是为什么答案好像是先执行1 1是真的就不执行2和3了追答这个要看各个表达式的值是真还是假,如果表达式2和3中有一个为假则表达式2&&表达式3为假,否则为真,若表达式1和(表达式2&&表达式3)的值中有一个为真则为真,否则为假追问我的意思是第一时间会运行哪一个表达式追答先运行&&后运行||,优先级关系追问那就是表达式2?追答。。。如果你说的是表达式自身的运算是优先于&&和||的,也就是说表达式123都会先计算出结果再用其表达式的值进行与或运算追问a=4,b=7,c=5
d3=(ab--);因为&&的优先级高所以可以改写成(ab--)),ab--)优先级相等,求出的值再进行或运算,此时无论((++a==5)&&(c>b--)的值为真或为假,(a
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯