700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > strlen和sizeof求字符串长度

strlen和sizeof求字符串长度

时间:2023-08-26 03:03:22

相关推荐

strlen和sizeof求字符串长度

首先,strlen是函数,sizeof是运算操作符,二者得到的结果类型为size_t,即unsigned int类型。大部分编译程序在编译的时候就把sizeof计算过了,而strlen的结果要在运行的时候才计算出来。

对于以下语句:

char *str1 = "asdfgh";char str2[] = "asdfgh";char str3[8] = {'a', 's', 'd'};char str4[] = "as\0df";

执行结果是:

sizeof(str1) = 4; strlen(str1) = 6;sizeof(str2) = 7; strlen(str2) = 6;sizeof(str3) = 8; strlen(str3) = 3;sizeof(str4) = 6; strlen(str4) = 2;

str1是字符指针变量,sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,所以结果是4;strlen返回的是该字符串的长度,遇到\0结束,\0本身不计算在内,故结果是6。

str2是字符数组,大小由字符串常量"asdfgh"确定,sizeof获得该数组所占内存空间大小,包括字符串结尾的\0,所以结果为7;strlen同理返回6。

str3也是字符数组,但大小确定为8,故sizeof得到的结果是8;strlen统计\0之前所有字符的个数,即为3。

str4是常量字符数组,sizeof得到字符总数即6;strlen计算至\0结束,因此返回2。

总结一句就是sizeof计算的是变量的大小,strlen计算的是字符串长度,前者不受字符\0影响,后者以\0作为长度判断依据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。