int a=2,b=3,c=-1;d=a?b:c;此处 d 的值为?
三目运算符 a?b:c。
根据上次的经验,我们知道a这边是一个判断语句,也就是if(a),然而在c/c++中,if语句里面的!=0可以省略不写,所以完整格式应该是if(a!=0}.有题知a是不等于0的,所以为真。输出b。所以也就是d=b=3
要有d的值才能判断,如果d和a的值相等,结果就是b的值,不等就是c的值。
不是问过了吗,怎么又发一遍
d=a?b:c;三目运算符的结合性是右结合的,这句相当于:d = (a ? b : c); ,因为 a =2 非零即为真,所以返回 b = 3, 然后 d = b = 3;
因为前面定义了变量 a b c ,没有定义 d ,所以正确的写法应该为 int d = a ? b : c;
三目运算符的知识,供参考:https://baike.baidu.com/item/%E4%B8%89%E7%9B%AE%E8%BF%90%E7%AE%97%E7%AC%A6/6434591?fr=aladdin