int strlen( char * str ) { int i = 0; //使用局部变量了啊,这个i就是局部变量 while( *str ) { str++; i++; } return i; }
#include <stdio.h> #include <assert.h> int fun(char *str) { return assert(str), *str != '\0' ? fun(str + 1) + 1 : 0; } int main(void) { char *str = "abcdefg"; printf("%d\n", fun(str)); return 0; }