问题:
编写函数,不允许创建临时变量,求字符串的长度。
思路:
- 若不需要编写函数,直接调用strlen(),即可。
- 此外若允许创建临时变量,则创建count统计字符个数。
- 不允许字符变量,且用函数,则想到用递归,直接返回计算过程的结果。
递归思路:
因为是字符串,因此传进来的是字符数组首元素的地址。
此外,递归要有结束条件和每次变化条件(逼近结束值)结束条件则是函数指向‘\0’时,统计结束;变化条件是,第一次传的首元素地址,发现不是'\0',则return1+zifu(str+1)。(因为通过指针地址读取元素,因此一位一位的判断,每次判断以为,若是则+1.若不是则return0,返回上一个递归函数)。
当遇到'\0'时,return 0,此时0返回到上一层函数 1+zifu(str+1)中,此时为1+0=1,此时这个函数再返回上一层1+zifu(str+1)中,为1+1=2依次类推。
具体如图所示: