当前位置:首页 » 编程语言 » c语言sizeofstrlen
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言sizeofstrlen

发布时间: 2022-01-30 01:38:05

c语言中sizeof和strlen函数区别在哪

1、操作

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

而sizeof()返回的是变量声明后所占的内存数,不是实际长度。

2、参数类型

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

3、类型

sizeof是操作符(关键字),strlen是函数。

(1)c语言sizeofstrlen扩展阅读

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语言中sizeof与strlen的区别是什么

一、指代不同

1、sizeof:用于获取字符串的长度,是处理字符串的重要工具。

2、strlen:所作的是一个计数器的工作。

二、规则不同

1、sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要用圆括号。

2、strlen:从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符''为止,然后返回计数器值。


三、用法不同

1、sizeof:sizeof( type_name ); // sizeof( 类型 );编译时起作用,而不是运行时。

2、strlen:externunsignedintstrlen(char*s);返回s的长度,不包括结束符NULL。

㈢ C语言中,sizeof和strlen都是表示字符串长度的吗谁能告诉我它们两者的区别~~

sizeof 计算的是数据在内存中存放的长度,单位是“字节”,可以对任何数据类型做运算,而且它是一个运算符(和+、-、*、\类似);当对字符串计算时,包含末尾的"\0";当对字符数组操作时,返回的是数组的总的长度,也就是当把数组作为参数传递给sizeof时是不会退化的。strlen 计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符),计算时,不包含末尾的"\0";当对字符数组操作时,返回的是数组总存放的字符串的实际长度(也就是\0之前的),也就是当把数组作为参数传递给strlen时是会退化成char*指针的。例如:char* str = "Hello!";sizeof(str)值为7;strlen(str)值为6;char str[20] = "Hello!";sizeof(str)值为20;strlen(str)值为6;

㈣ c语言中strlen 与sizeof有什么区别

strlen 是返回所定义字符串的长度,而sizeof是用来取得变量或类型所占用的内存空间大小的。

㈤ c语言中sizeof()和strlen()用法上有什么区别呢

strlen可以得到字符串长度。sizeof可以得到内存字节长度
数组有10个char型成员,自然有10的字节长度

㈥ C语言strlen sizeof

1.
sizeof(exp)/sizeof(char)输入总是10,这是对的。sizeof返回的是exp的大小,exp是个大小为10的char的数组,大小为10*sizeof(char)。
2.
strlen(exp)的意思是从exp即exp[0]开始往后数,直到遇到NULL的个数。由于你只对第二个元素和第三个元素赋值,其他元素是随机的,所以输出可能是15。在我电脑上也可能是其他的结果。

㈦ sizeof和strlen在c语言的区别是什么

sizeof和strlen在c语言的区别如下:

1、类型不同:sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。

2、性质不同:sizeof是算符,strlen是函数。

3、参数不同:sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''''结尾的。sizeof还可以用函数做参数。

4、退化情况不同:数组做sizeof的参数不退化,传递给strlen就退化为指针了。

㈧ c语言的sizeofstrlen什么意思

函数
sizeof(T)
返回指定参数
T
所占内存的字节数象
x
这个数组因为初始化的是一个字符串除了把
string
的内容写入外还要再加一个
\\0
的停止符所以长度一共是
7
个字节与个中所存储的内容无关。strlen(x)
返回的是字符串从第一个字符到
\\0
之前的字符个数\\0
等于
0所以
x0=0
相当于
x0=\'\\0\'。所以输出为:7
0

㈨ sizeof和strlen在c语言的区别是什么

sizeof和strlen在c语言的区别是:用法不同。

sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。sizeof是算符,strlen是函数。sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以“\0”结尾的。

strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。sizeof后如果是类型必须加括号,如果是变量名可以不加括号。这是因为sizeof是个操作符不是个函数。

函数调用:

sizeof(函数名())

sizeof也可以对一个函数调用求值,其结果是函数返回类型的大小,函数并不会被调用,举例来说定义如下函数:

int myprint ()

{undefined

printf(“hello ”);

return 0;

int main()

{undefined

printf(“%d”,sizeof(mypaint()));

return 0;

结果只打印函数返回类型的sizeof值,并没有打印hello说明函数myprint并没有调用。

㈩ sizeof和strlen在c语言的区别是什么

区别如下:

1、指代上的区别

(1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。

(2)strlen:做的是一个计数器。

2、用法上的区别

(1)sizeof:sizeof( type_name ); // sizeof(type); 在编译时有效,而不是在运行时有效。

(2)strlen:externunsignedintstrlen(char*s); 返回s的长度,不包含终止符NULL。

规则上的区别

(1)sizeof:可用于任何变量名,类型名或常量值。 当用于变量名(不是数组名)或常量时,不需要括号。

(2)strlen:从内存的某个特定位置开始扫描(可以是字符串的开头,中间的某个位置,甚至是不确定的存储区域),直到第一个字符串结束字符' 0'为止 ,然后返回计数器值。