char str[20]="0123456789";
int a=strlen(str); //a=10; //字符串长度
int a=strlen(str); //a=10; //字符串长度
int b=sizeof(str); //而b=20; //预分配空间
sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,
因此sizeof不能用来返回动态分配的内存空间的大小。
所以sizeof返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。
sizeof最不准确:计算 指针空间尺寸 4字节,数组空间尺寸[100]
char *str1="absde";
char str2[]="absde";
char str3[8]={'a',};
char ss[100] = "0123456789";
输出:
sizeof(str1)=4 //指针空间尺寸
sizeof(str2)=6;
sizeof(str3)=8;
sizeof(ss)=100 //数组空间尺寸
strlen参数必须是字符型指针(char*)
功能:返回字符串的长度。