语句if(a>b) printf("%d",a); else printf("%d",b);可以用条件表达式a>b?a:b取代吗?为什么?
发布网友
发布时间:2022-10-16 05:48
我来回答
共2个回答
热心网友
时间:2023-10-16 10:33
?: 是一个三目运算符(据我所知貌似是唯一一个三目运算符),功能你肯定很清楚了。
准确来说它并不是一个表达式,所以你如果写一句a>b?a:b;那肯定是错的...
如楼上所说,你必须要把这个运算的结果赋给一个变量...
推荐在程序中尽可能地使用一些简化写法,因为编译器在编译时能够主动优化,增加执行效率。
。。。。。。。。查了一下书,发现我上面还说错了。。。。。。
?:的一般形式为 操作数1 ? 操作数2 : 操作数3
1必须为基本类型或指针类型、(一般为整型的)表达式,2和3 可以是其他任何类型的表达式,且类型也可不一致
热心网友
时间:2023-10-16 10:34
可以,你可以写成如下形式:
int a=3,b=4,c;
c=a>b?a:b;
printf("%d",c);
结果输出的就是4,判断语句的意思就是如果a>b为真将返回a的值给c,否则返回b的值给c;