我有一些代码:
int strlen_rec(char arr[])
{
if(arr[0]=='\0')
return 0;
else
return 1 + strlen_rec(&arr[1]) ;
}
线路
return 1 + strlen_rec(&arr[1]) ;
让我很困惑。谁能解释一下它的作用吗?
最佳答案
该函数使用递归计算字符串的长度。它可能看起来很困惑,因为它使用像指针一样的数组。 &ar[1]
正在增加指针(使用下一个字节的地址调用函数)。 C 字符串以空字节终止,该字节不包含在长度中,因此到达时返回 0。
关于c - `return 1 + strlen_rec(&arr[1]) ;`是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860828/