要理解两者的区别,就要分别理解他们的本质
strlen(char *) 计算字符串的长度,内部实现是用一个循环计算字符串的长度,直到‘\0’为止
1.srtlen 是一个函数,参数只能为char 或者 string (sizeof是运算符,可以对好多类型作sizeof,如struct, class等)
2.对数组作sizeof不退化为指针,传递给strlen就退化为指针
3.对字符数组求,有区别,sizeof包含 '\0',strlen不包含'\0'
char s[]="hello"; sizeof(s);//打印6,包含 '\0' strlen(s); //打印5,不包含 '\0'
char ss[100]="012345467"; cout << strlen(ss) <<endl; //输出 9 cout << sizeof(ss) <<endl; //输出 100