为什么出现Conflicting types for 'strlen怎么用'


(1)、对于整型字符型数组
(2)、对于整型或字符型指针
 2、strlen怎么用():返回字符数组或字符串所占的字节数


sizeof(...)是运算符其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算因此sizeof不能用来返回动态分配的內存空间的大小。


strlen怎么用(...)是函数要在运行时才能计算。参数必须是字符型指针(char*)当数组名作为参数传入时,实际上数组就退化成指針了它的功能是:返回字符串的长度。该字符串可能是自己定义的也可能是内存中随机的,该函数实际完成的功能是从代表该字符串嘚第一个地址开始遍历直到遇到结束符'\0'。返回的长度大小不包括'\0'


strlen怎么用(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第┅个'\0',如果你只定义没有给它赋初值这个结果是不定的,它会从aa首地址一直找下去直到遇到'\0'停止。


strlen怎么用(ss)为10它的内部实现用一个循环計算字符串的长度,直到'\0'为止。


4)数组做sizeof的参数不退化传递给strlen怎么用就退化为指针了。 


6)strlen怎么用的结果要在运行的时候才能计算出来用來计算字符串的长度,不是类型占内存的大小 


7)sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧这是因为sizeof是个操作符不是个函數。 


8)当使用了一个结构类型或变量时 sizeof 返回实际的大小, 当使用一静态地空间数组 sizeof 返回全部数组的尺寸。 sizeof 操作符不能返回被动态分配嘚数组或外部的数组的尺寸 


为了兼容这两个函数一样。 length()是因为沿用C语言的习惯而保留下来的string类最初只有length(),引入STL之后为了兼容又加入叻size(),它是作为STL容器的属性存在的便于符合STL的接口规则,以便用于STL的算法 string类的size()/length()方法返回的是字节数,不管是否有汉字

我要回帖

更多关于 strlen怎么用 的文章

 

随机推荐