strlen() 函数从字符串的开头位置依次向后计数,直到遇见,然后返回计时器的值。最终统计的字符串长度不包括。
原型size_t strlen(char const* str);
因为函数 strlen 的返回结果是 size_t 类型(即无符号整型),而 size_t 类型绝不可能是负的。
#include#include int main () { char str[50]={0x01,0x02,0x03}; int len; printf("strlen(str) = %dn",strlen(str)); printf("sizeof(str) = %dn", sizeof(str)); return(0); }
关键字 sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等,如下面的示例代码所示:
char sArr[] = "ILOVEC"; printf("sArr的长度=%dn", sizeof(sArr));
相对于函数 strlen,这里的示例代码运行结果为 7(因为它包括结束字符 null)。同时,对 sizeof 而言,因为缓冲区已经用已知字符串进行了初始化,其长度是固定的,所以 sizeof 在编译时计算缓冲区的长度。也正是由于在编译时计算,因此 sizeof 不能用来返回动态分配的内存空间的大小。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)