要理解两者的区别,就要分别理解他们的本质

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

 

 

 

posted on 2014-06-26 15:18  zhangxh_Doris  阅读(270)  评论(0编辑  收藏  举报