我很难理解这句话:
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;
}