关于#c语言#的问题,请各位专家解答!

int a=2,b=4;

a=b/10?1:0
求a和b的值

整个程序运行下来值是0。
a和b的值没有变化,第二行代码的意思是:
判断a是否等于b/10的值,如果结果为真,取1,为假,取0.b/10结果是0,不等于2,所以最后值为0.

b/10 = 0等价于假
所以b/10?1:0返回冒号后面的值也就是0
所以 a = 0
b没有改变还是4

b/10=0 所以a=0

img


0和4

a=b/10?1:0,可以转换为:
if(b/10)
a=1;
else
a=0;
所以b的值一直是4,a的值变成了1