#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char buf[]="hello";
//从首元素开始,到结束符截止的长度,结束符不算("\0")遇到这个结束
int len = strlen(buf);
printf("len=%d\n",len);
char buf2[]="\0hello";
int len2 = strlen(buf2);
printf("len2=%d\n",len2);
//sizeof()测数据类型的长度,不会因为结束符号,提前结束
printf("sizeof(buf2)=%lu\n",sizeof(buf2));
char str[100]="mike";
//打印出4的原因是,strlen遇到“/0”就结束
printf("strlen(str)=%lu\n",strlen(str));//4
//sizeof遇到"/0不结束"
printf("sizeof(str)=%lu\n",sizeof(str)); //100
printf("\n");
system("pause");
return 0;
}
strlen:从首元素开始,到结束符截止的长度,结束符不算("\0")遇到这个结束
sizeof:测数据类型的长度,不会因为结束符号,提前结束
倒数第二个sizeof为7的原因是,你前面有一个/0算一个,中间文字5个,最后自己补一个/0
注意
strlen遇到/0结束
sizeof遇到/0不结束