先说strlen与sizeof区别:
sizeof是一个数据类型关键字,输出变量或者别的什么数组的占用内存空间大小的
而strlen是以一个库函数,使用时需要需要包含库文件“string.h”结果返回包含字符串结束符在内的字符串长度
sizeof返回的是类型所占有的字节数
而strlen返回的是一个字符串中字符个数
sizeof求对象占用内存的大小,strlen 求字符串长度
char arr[10]="Hello";
printf("%d\n",strlen(arr));//5 只关心存储的数据内容,不关系空间的大小和类型
printf("%d\n",sizeof(arr));//10 编译时计算,编译器为其分配的数组空间大小
char *parr=new char[10];
printf("%d\n",strlen(parr));//未赋值 随机数
printf("%d\n",sizeof(parr));//4 指针
printf("%d\n",sizeof(*parr));//1 指针所指向的类型char