我是编程的初学者,在C中学习列表的时候,我发现了这个函数,不知道它在做什么。请有人解释一下。什么是“return list == NULL?0:list-> value + fun(list-> next)”呢?
int fun(list_t *list) {
return list == NULL ? 0 : list->value + fun(list->next);
}
我认为它
if (list == NULL)
return 0;
else {
return list->value;
fun(list->next);
}
一个较短,如果else语句这是正确的还是我误读了吗?
部分正确 - 如果list!= NULL,则返回'list-> value + fun(list-> next)'的总和。 –
在你的第二个片段'fun(list-> next);''将不会被调用,因为之前的行中有'return'语句。 – alk
供您参考:http://port70.net/~nsz/c/c11/n1570.html#6.5.15 – alk