strlen函数与sizeof区别(C++中sizeof和strlen的区别是什么)

本文目录
- C++中sizeof和strlen的区别是什么
- C语言中sizeof和strlen函数区别在哪
- c语言中strlen 与sizeof有什么区别
- c语言sizeof和strlen的区别是什么
- strlen和sizeof的区别
- strlen和sizeof有什么区别
C++中sizeof和strlen的区别是什么
strlen:是C标准库中的字符串函数,用于统计字符的个数。
sizeof:是c语言中的运算符,确切的说是一个编译时运算符,用于统计类型或者变量所占的内存字节数。示例,以32位系统为例。
char *str = “hello“;strlen(str); //它的值是5,因为hello这个字符串有5个字符
sizeof(str); //它的值是4,因为char *是一个指针类型,它占4个字节。
sizeof(“hello“); //它的值是5,是因为hello有5个字符,每一个字符占1个字节。
int a = {0};
sizeof(a); //它的值是8,因为a中有2个int型变量,每个int型占4个字节,所以8字节
C语言中sizeof和strlen函数区别在哪
1、操作
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。
而sizeof()返回的是变量声明后所占的内存数,不是实际长度。
2、参数类型
sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以’’\0’’结尾的。
3、类型
sizeof是操作符(关键字),strlen是函数。
扩展资料
strlen函数原型:
size_t strlen(const char *string)
size_t 是无符号整数的别名,在vs2008编译器中可以查看其宏定义。
功能:
其功能是获取字符串的长度。
返回值:
在MSDN文档中查看strlen函数的返回值,叙述如下。
Each of these functions returns the number of characters in string, excluding the terminal NULL. No return value is reserved to indicate an error.
每个函数都返回字符串中的字符数,不包括终端NULL。不保留返回值以指示错误。
参数:
Null-terminated string
空终止字符串, 字符串标准库提供的头文件中包含操作以空字符结尾的字符串(null-terminated string)的函数。
参考资料:百度百科——strlen
c语言中strlen 与sizeof有什么区别
strlen
是返回字符串的长度。
而sizeof,却是用来取得变量或类型所占用的内存大小的。
这个a数组的字符串长度为4(末尾的\0是不计入字符串长度的),但a是10个单位的char型,它占用的内存空间是10*sizeof(char),为10.
sizeof
返回的数量的单位是Byte.
c语言sizeof和strlen的区别是什么
一、指代不同
1、sizeof:用于获取字符串的长度,是处理字符串的重要工具。
2、strlen:所作的是一个计数器的工作。
二、规则不同
1、sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要用圆括号。
2、strlen:从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值。
定义
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t。
strlen和sizeof的区别
1、用法不一样
strlen只能用char*做参数,且必须是以’’\0’’结尾的。
sizeof可以用类型做参数,用函数做参数,比如:
short f();
printf(“%d\n“, sizeof(f()));
输出的结果是sizeof(short),即2。
2、功能不一样
sizeof的功能能是,获得保证,能容纳实现所建立的最大对象的字节大小。
strlen的功能是返回字符串的长度,该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符0。返回的长度大小不包括0。
3、意思不一样
sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。
strlen和sizeof有什么区别
区别:
一、定义不同
sizeof是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
2、它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4)。
二、语法不同
1、strlen是函数,要在运行时才能计算。参数必须是字符型指针。当数组名作为参数传入时,实际上数组就退化成指针了。
2、它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
扩展资料
1、sizeof是算符,strlen是函数。 数组做sizeof的参数不退化,传递给strlen就退化为指针了。strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
2、sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。
参考资料:百度百科:strlen;百度百科:sizeof

更多文章:
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00




