#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>
//内存区域存放内容:
//栈区:函数形参,局部变量
//堆区:动态开辟的内存
//静态区:全局变量,static修饰的变量
//函数调用向栈区申请空间
//递归指函数自己调用自己以不断简化算法,思路:逐步化简
//无限递归会导致栈溢出
//void print(int a)
//{
//
// if (a >= 10)//递归一定要加限制条件,否则会无限递归导致栈溢出
// //每次递归都要不断接近限制条件
//
// print(a / 10);
//
// printf("%d ", a%10);
//
//}
//
//int main()
//{
//
// int a = 0;
//
// scanf("%d", &a);
//
// print(a);
//
// return 0;
//
//}
int my_strlen(char* a)
{
if (*a != '\0')
return (1 + my_strlen(a + 1));//不要用a++(这种写法指先输入a再++,可写为++a(但会改变 //str)),会造成栈溢出
else
return 0;
}
int main()
{
char a[] = "asdf";
int len1 = strlen(a);
int len2 = my_strlen(a);
printf("%d\n%d", len1, len2);
return 0;
}