- 题目:设static int a;执行表达式(a==1)&&(a=-1)&&(a=2)后,a的值是?
- 代码+分析:
//设static int a;执行表达式(a==1)&&(a=-1)&&(a=2)后,a的值是?
static int a,b;
b = (a == 1) && (a = -1) && (a = 2);
printf("a=%d\nb=%d\n", a,b);
//分析:a是静态变量,并没有初始化,所以a=0
//然后判断a==1,0!=1, 0&&此时触发短路后边不再执行
//a=0,表达式=0