我很难理解这句话:
for( int i=0; i< out_length; i++){
int num=i < length_a ? array_a[i] : 0;
...
...我谷歌的内容:
expr1?expr2 : expr3 如果expr1计算值为非零值,则计算expr2,否则将计算expr3 .表达式作为一个整体的值是计算expr2或expr3的值(这意味着expr2和expr3的类型必须相同)。
但是我仍然很困惑,如果你能把这个语句转换成一些 if -块,那会很有帮助的,谢谢你的帮助。
发布于 2014-03-17 03:50:09
expr1?expr2 : expr3
如果其他条件相同,则相当于:
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;
}发布于 2014-03-17 03:51:18
EXP1?exp2 : exp3
决意
if(exp1){ //if exp1==1
exp2 //do this
}
else{ //if exp2==0
exp3 // do this
}发布于 2014-03-17 03:51:34
int num=i < length_a ? array_a[i] : 0;相当于
int num;
if(i<length_a)
num = array_a[i];
else
num = 0;https://stackoverflow.com/questions/22446610
复制相似问题