gpt4 book ai didi

c - 返回语句中的奇怪表达式

转载 作者:太空狗 更新时间:2023-10-29 17:19:09 26 4
gpt4 key购买 nike

我发现了一个让我有点惊讶的递归函数,这个函数计算出现在数组中的所有负数:

int count_negative(int arr[], int n)
{
if ( n > 0 )
return (*arr < 0) + count_negative( ++arr, n - 1 );
return 0;
}

谁能解释一下这一行:

return (*arr < 0) + count_negative( ++arr, n-1 );

谢谢

最佳答案

(*arr < 0)将数组的第一个元素与零进行比较。表达式的结果可以是 1 (第一个元素为负)或 0 (第一个元素为正数或零)。所以,负数元素的个数就是这个表达式和数组尾部负数元素的个数之和。

关于c - 返回语句中的奇怪表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26949157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com