我很难理解这句话:

for( int i=0; i< out_length; i++){

     int num=i < length_a ? array_a[i] : 0;

...
...

我在谷歌上搜索的是:
出口1?表达式2:expr3
如果expr1求值为非零值,则expr2求值,否则
计算表达式3。整个表达式的值是
对expr2或expr3的ever进行求值(这意味着expr2和
表达式3必须相同)。
但我还是很困惑,如果你能把这句话变成一些if else blocks,会很有帮助的,谢谢你的帮助。。

最佳答案

出口1?表达式2:expr3
如果else为:

if(expr1)
{
   //Evaluate expr2
}
else
{
   //Evaluate expr3
}

所以代码中的语句计算结果为:
int num=i < length_a ? array_a[i] : 0;

方法
if(i<length_a)
{
   num = array_a[i];
}
else
{
   num = 0;
}

10-08 00:41