搜索你感兴趣的问题
strlen 与sizeof()的区别
安之若素 2024-06-04 12:37:58
推荐回答
安之若素 2024-06-07 10:13:47

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

操作方法

sizeof是算符,strlen是函数

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

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

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

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

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

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

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

大家都关注
有问题 @爱问
Powered by iask.com