"return list == NULL ? 0 : list->value + fun(list->next)" 是做什么的?
what does "return list == NULL ? 0 : list->value + fun(list->next)" do?
我是编程初学者,在学习 C 中的列表时,我发现了这个函数,但不知道它的作用。有人可以解释一下吗。
int fun(list_t *list) {
return list == NULL ? 0 : list->value + fun(list->next);
}
我认为
的 if else 语句更短
if (list == NULL)
return 0;
else {
return list->value;
fun(list->next);
}
这是对的还是我看错了?
? :
称为 Conditional (ternary) operator:
return list == NULL ? 0 : list->value + fun(list->next);
等同于:
if(list == NULL) {
return 0;
}
else {
return list->value + fun(list->next);
}
或者更明确地说:
return (list->value + fun(list->next));
先求和,然后返回结果。
前面的回答已经回答了你的问题。我只想指出一个区别:三元运算符可用于 return 一个值
if(cond)
str = "foo";
else
str = "bar";
使用三进制,你可以这样写:
str = cond ? "foo" : "bar";
代码正确。
在这段代码中,他们使用了链表、指针,最重要的是他们使用了条件运算符或三元运算符。
在函数 fun(list_t *list) 中,他们使用了条件运算符。
语法:(条件?true_value:false_value);
return 列表 == NULL ? 0 : list->value + fun(list->next);
这里NULL代表条件,0代表真部分,list->value + fun(list->next)代表假部分。
最后true或false值将存储在变量列表中,它是returned.
他们使用了条件运算符或三元运算符。
在函数 fun(list_t *list)
中,他们使用了条件运算符。
Syntax : (Condition? true_value: false_value);
return list == NULL ? 0 : list->value + fun(list->next);
这里list==NULL
代表要检查的条件,0
代表真实的部分,
list->value + fun(list->next)
代表虚假部分
最后,根据条件评估,真值或假值将 returned 到调用函数。
如果 list==NULL
为真
0
将 returned
如果它是假的,即 list==NULL
是假的,那么 list->value
是 return 加上它会递归调用
fun(list->next)
.
我是编程初学者,在学习 C 中的列表时,我发现了这个函数,但不知道它的作用。有人可以解释一下吗。
int fun(list_t *list) {
return list == NULL ? 0 : list->value + fun(list->next);
}
我认为
的 if else 语句更短if (list == NULL)
return 0;
else {
return list->value;
fun(list->next);
}
这是对的还是我看错了?
? :
称为 Conditional (ternary) operator:
return list == NULL ? 0 : list->value + fun(list->next);
等同于:
if(list == NULL) {
return 0;
}
else {
return list->value + fun(list->next);
}
或者更明确地说:
return (list->value + fun(list->next));
先求和,然后返回结果。
前面的回答已经回答了你的问题。我只想指出一个区别:三元运算符可用于 return 一个值
if(cond)
str = "foo";
else
str = "bar";
使用三进制,你可以这样写:
str = cond ? "foo" : "bar";
代码正确。 在这段代码中,他们使用了链表、指针,最重要的是他们使用了条件运算符或三元运算符。
在函数 fun(list_t *list) 中,他们使用了条件运算符。 语法:(条件?true_value:false_value);
return 列表 == NULL ? 0 : list->value + fun(list->next);
这里NULL代表条件,0代表真部分,list->value + fun(list->next)代表假部分。 最后true或false值将存储在变量列表中,它是returned.
他们使用了条件运算符或三元运算符。
在函数 fun(list_t *list)
中,他们使用了条件运算符。
Syntax : (Condition? true_value: false_value);
return list == NULL ? 0 : list->value + fun(list->next);
这里list==NULL
代表要检查的条件,0
代表真实的部分,
list->value + fun(list->next)
代表虚假部分
最后,根据条件评估,真值或假值将 returned 到调用函数。
如果 list==NULL
为真
0
将 returned
如果它是假的,即 list==NULL
是假的,那么 list->value
是 return 加上它会递归调用
fun(list->next)
.