发布网友 发布时间:2022-04-23 16:40
共5个回答
热心网友 时间:2022-05-02 08:25
……?……:……
式A?B:C值为:若A为真,则B;若A为假,则C。
但有一点是值得注意的,那就是问号表达式的结合性,问号表达式是从右往左的运算方向
尤其是当问号表达式嵌套使用时得注意这个问题,例如
代码:
int a=1,b=2,c=3,d=4;
printf("%d",a<b?a:c<d?c:d);
正确结果是:1
因为先执行的是c<d?c:d,会返回c,然后执行a<b?a:c
因此得到的结果就是1(可以在编译器上实验一下)
热心网友 时间:2022-05-02 09:43
你的意思就是如果M为真,也就是说M!=0,就执行a++,如果M为假,也就是说M==0,就执行a--。所以这个M就相当于判断M是否等于0;如果还看不懂的话,你可以去看下C语言书上的条件表达式的那章,很简单的,好好加油,祝你成功!~
热心网友 时间:2022-05-02 11:18
其中:a<b?a:b是一个“条件表达式”;而“c=
“
是赋值表达式,那么因为在C语言中,条件表达式的优先级排名13
高于赋值表达式的优先级14,因此这个语句的意思就是:当a小于b时,c=a;而当a大于或者等于b时,c=b;再翻译过来就是说这个语句执行完得到的效果就是c的值是取得a,b俩者当中较小的那个
热心网友 时间:2022-05-02 13:09
a/b?b没有写完整。
编译时是不合法的句子。
我猜想是三目运算符:
条件?真值:假值
a/b?b:a
热心网友 时间:2022-05-02 15:17
题目的意思是如果M为真,即M!=0,就执行a++,如果M为假,即M==0,就执行a--。所以这个M就相当于判断M是否等于0.