sizeof和strlen的区别:
strlen的结果要在运行的时候才能计算出来,主要用来计算字符串的长度,不是类型占内存的大小,以'\0'结束
sizeof 获得的是一个指针的之所占的空间,应该是长整型的,所以是4,如:
char *p="abcdef";
sizeof(p) = 4;
strlen(p) = 6;
sizeof 计算的是分配的数组 所占的内存空间的大小,不受里面存储的内容改变,如:
char a[5] = "abc";
sizeof(a) = 5;
strlen(a) = 3;
sizeof计算字符串长度时计算所有字符个数(结束符也算范围内),“\0”“\n”都算一个字符。 如:
char b[] = "abc";
sizeof(a) =4;
strlen(a) = 3;
|
|