作业帮 > 综合 > 作业

c语言设a=2,b=0,c;则执行c=b&&a--;语句后,a的结果是2,为什么a不是等于1呢?当b=1时,a为什么又等

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 02:33:20
c语言设a=2,b=0,c;则执行c=b&&a--;语句后,a的结果是2,为什么a不是等于1呢?当b=1时,a为什么又等于1呢
&&的特点是,只要左右表达式有一个为0,则整个表达式为0,
并且&&的运算顺序是从左向右,
所以如果&&的左表达式为0,则不会再计算右表达式,直接将整个表达式返回0,这个又叫&&短路
所以当b=0时,不会再处理a--,直接b&&a--返回0了,所以a值不变
而当b=1时,还要再根据右值是否为0才能判断整个表达式的值,所以会再处理a--,所以a值为1