x= - -a || b&& + +c; printf(“%d 尀n ” ,x ); 是什么意思?解释一下

main(){int x , a=1, b=2, c=0 ;x= - -a || b&& + +c;printf(“%d 尀n ” ,x );} A 1 B 0 C -1 D 非零值
2024-11-24 02:58:36
推荐回答(2个)
回答1:

你首先要知道||和&&的用法,还有||,&&,--,++,=的优先级!其中--和++的优先级最高,故先计算这两个运算,--表示自减,a由1变为0,++表示自加,c由0变为1,再就是&&的优先级要高于||的优先级,故先计算&&,&&表示并的意思,只有当&&两端的数值都为非0时,那么作为整体,它会输出对应的逻辑1,像本题,b=2非0,c=1非0,所以b&&c=1.再就计算||,||表示或,当变量都只要有一个非0时,那么它作为一个整体输出逻辑的1,像本题,--a||(&&++c),括号里面的由前面已知为1了,所以尽管--a为0,当整体对应输出的还是1,所以x=1.

回答2:

变量x的值等于a自减1(a=a-1),判断运算后的a是否是非0的数,如果是的话,x=1,如果不是的话,再看b是否为非零的数,如果b非零的数,x仍然等于1,如果前面的--a与b都为0时,结果:x=0;