int strlen(char *p);的实现(不开辟任何空间)

来源:互联网 发布:云网络验证 编辑:程序博客网 时间:2024/06/10 23:09

#include<stdio.h>int strlen(char *p) {if(p == NULL) {return 0;} else if(*p == 0) {return 0;}else {return 1 + strlen(p+1);}}int main(void) {char a[] = "fhgfdgc";int len;len = strlen(a);printf("%d\n",len);return 0;}

主要就是递归的思想。最后如果是return 1 + strlen(p++)程序陷入死循环,因为函数先调用p,然后p指针才++,实际是形参p一直得不到改变。



阅读全文
0 0
原创粉丝点击