strlen 与sizeof()的区别

这两个都是计算机语言,strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含"\0")。sizeof()是运算符,可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,它不需要用圆括号。它在编译时起作用,而不是运行时。

01、sizeof是算符,strlen是函数

02、sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的

03、sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。strlen只关心存储的数据内容,不关心空间的大小和类型。

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

05、如果要获得这个字符串的长度,则一定要使用strlen,sizeof()函数返回的是变量声明后所占的内存数,不是实际长度。

06、数组做sizeof的参数不退化,传递给strlen就退化为指针了

07、sizeof(x)可以用来定义数组维数,大部分编译程序在编译的时候就把sizeof计算过了

08、数组作为参数传给函数时传的是指针而不是数组,传递的是数组的首地址。

标签

发表评论


Warning: error_log(/www/kuaileyao/kuaile/wp-content/plugins/spider-analyser/#log/log-2723.txt): failed to open stream: Permission denied in /www/kuaileyao/kuaile/wp-content/plugins/spider-analyser/spider.class.php on line 2966