以下c语句不通过编译器.error是"返回前的预期表达式".
int max( int a,int b)
{
a>b?return a:return b;
}
Run Code Online (Sandbox Code Playgroud)
是的,我知道我可以写这个来寻找最大值
return a>b?a: b;
Run Code Online (Sandbox Code Playgroud)
这是非常好的,将完美运行.但我的问题是第一个代码的确切问题.为什么我们在三元opoerator中使用return,虽然我们可以在那里很容易地使用函数调用?
提前致谢!!!
?: 是一个操作符而不是一个控制流构造,所以操作数的整个必须是一个表达式,而返回语句(或任何语句)都不是有效的子表达式.
?:(不是简单的简写if-else(控制流程构造); 它在语义上是不同的.
if( a > b ) return a; else return b;
Run Code Online (Sandbox Code Playgroud)
另一方面,你正在尝试做什么,并且完全有效(如果风格上可能是不明智的).
| 归档时间: |
|
| 查看次数: |
6391 次 |
| 最近记录: |