Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 什么是;返回列表==NULL?0:列表->;价值+;乐趣(列表->;下一步)";做_C_Operators - Fatal编程技术网

C 什么是;返回列表==NULL?0:列表->;价值+;乐趣(列表->;下一步)";做

C 什么是;返回列表==NULL?0:列表->;价值+;乐趣(列表->;下一步)";做,c,operators,C,Operators,我是一名编程初学者,在学习C语言中的列表时,我发现了这个函数,但不知道它是做什么的。有人能解释一下吗 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->n

我是一名编程初学者,在学习C语言中的列表时,我发现了这个函数,但不知道它是做什么的。有人能解释一下吗

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);
}

这是对的还是我误读了它?

代码>:称为:

同:

if(list == NULL) {
    return 0;
}
else {
    return list->value + fun(list->next);
}
或者更清楚地说:

return (list->value + fun(list->next));

首先计算总和,然后返回结果。

代码>?:称为:

同:

if(list == NULL) {
    return 0;
}
else {
    return list->value + fun(list->next);
}
或者更清楚地说:

return (list->value + fun(list->next));

将首先计算总和,然后返回结果。

前面的答案已经回答了您的问题。我只想指出一个区别:三元运算符可用于返回值

if(cond)
   str = "foo";
else 
   str = "bar";
使用三元,您可以编写:

str = cond ? "foo" : "bar";

前面的答案已经回答了您的问题。我只想指出一个区别:三元运算符可用于返回值

if(cond)
   str = "foo";
else 
   str = "bar";
使用三元,您可以编写:

str = cond ? "foo" : "bar";
代码是正确的。 在这段代码中,他们使用了链表、指针,最重要的是,他们使用了条件运算符或三元运算符

在fun函数(list_t*list)中,他们使用了条件运算符。 语法:(条件?真值:假值)

返回列表==NULL?0:列表->值+乐趣(列表->下一步)

这里NULL表示条件,0表示真实部分,list->value+fun(list->next)表示虚假部分。 最后,true或false值将存储在变量列表中并返回。

代码正确。 在这段代码中,他们使用了链表、指针,最重要的是,他们使用了条件运算符或三元运算符

在fun函数(list_t*list)中,他们使用了条件运算符。 语法:(条件?真值:假值)

返回列表==NULL?0:列表->值+乐趣(列表->下一步)

这里NULL表示条件,0表示真实部分,list->value+fun(list->next)表示虚假部分。
最后,true或false值将存储在变量列表中并返回。

他们使用了条件运算符或三元运算符

在函数
fun(list\u t*list)
中,他们使用了条件运算符

语法:(条件?真值:假值)

返回列表==NULL?0:列表->值+乐趣(列表->下一步)

这里,
list==NULL
表示要检查的条件,
0
表示真实部分和

list->value+fun(list->next)
表示错误部分

最后,根据条件评估,true或false值将返回给调用函数

如果
列表==NULL
为真

0
将被返回

如果它为false,即
list==NULL
为false,则
list->value
返回,并且它将递归调用


fun(list->next)

他们使用了条件运算符或三元运算符

在函数
fun(list\u t*list)
中,他们使用了条件运算符

语法:(条件?真值:假值)

返回列表==NULL?0:列表->值+乐趣(列表->下一步)

这里,
list==NULL
表示要检查的条件,
0
表示真实部分和

list->value+fun(list->next)
表示错误部分

最后,根据条件评估,true或false值将返回给调用函数

如果
列表==NULL
为真

0
将被返回

如果它为false,即
list==NULL
为false,则
list->value
返回,并且它将递归调用


fun(list->next)

部分正确-如果
list!=NULL
将返回
list->value+fun(list->next)
的总和return
语句,代码>将永远不会被调用。仅供参考:部分正确-如果
list!=NULL
将返回
list->value+fun(list->next)
的总和return
语句,将永远不会调用code>。供参考: