首页 > 代码库 > Strlen()与Sizeof()的区别
Strlen()与Sizeof()的区别
strlen()函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个‘\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到‘\0’。strlen的结果在运行时才能计算来。
sizeof()返回的是变量声明后所占的内存数,不是实际长度此外sizeof不是函数,仅仅是一个操作符,strlen是函数。sizeof在编译时计算出来。
例子:
1.char* s="123456789";
sizeof(s)//4,s是指向字符串常量的字符指针
strlen(s)//9,只能用它获得这个字符串的长度
2.char s[]="123456789";
sizeof(s)//10,s是数组,计算到‘\0‘位置,因此9+1
strlen(s)//9, strlen是个函数内部实现是用一个循环计算到‘\0‘为止之前
3.char s[100] = "123456789";
sizeof(s) //100, s表示在内存中的大小100×1
strlen(s) //9, strlen是个函数内部实现是用一个循环计算到‘\0‘为止之前
4.int s[100] = "0123456789";
sizeof(s) //400, s表示再内存中的大小100×4
strlen(s) //错误, strlen的参数只能是char* 且必须是以‘\0‘结尾
Strlen()与Sizeof()的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。