c语言sizeof和strlen的区别

   更新日期:2024.05.20

区别如下:

1、指代上的区别

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

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

2、用法上的区别

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

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

定义

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。



char name[]="nike" ;
sizeof(name)=5

如果数组定义成int,就不能用scanf("%s",name);来输入字符串了,因为这两个类型是不同的。%s只能输入char字符串数据

sizeof运算符计算的是操作数类型的大小,只是数组会乘以长度而已,和传入的具体内容无关。
要强行输出5的话那就sizeof("nike")吧……
要强行可以计算补了0长度的那就strlen+1

\0 只在char型数组中才有。

  • 15577649889 :C语言中sizeof与strlen的区别是什么
    翟态景3544 :答:一、指代不同 1、sizeof:用于获取字符串的长度,是处理字符串的重要工具。2、strlen:所作的是一个计数器的工作。二、规则不同 1、sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要用圆括号。2、strlen:从内存的某个位置(可以是字符串开头,中间某个位置...
  • 15577649889 :sizeof和strlen区别
    翟态景3544 :答:sizeof和strlen的区别是:含义不同、功能不同。1、含义不同 在定义时,要知道到strlen是一个函数,它用来计算指定字符串str的长度,但不包括结束字符(即null字符)。而sizeof是一个单目运算符,而不是一个函数,它的参数可以是数组、指针、类型、对象、函数等。这就是strlen和sizeof的最本质区别。2...
  • 15577649889 :C语言中strlen()函数和sizof()函数分别怎么用?区别是什么
    翟态景3544 :答:world";sizeof(arr)/sizeof(a)/sizeof(str)都是可以的,但是只能使用strlen(str),而不能strlen(arr);2、区别:2.1 sizeof()是C语言中判断数据类型或者表达式长度符;不是一个函数,字节数的计算在程序编译时进行,而不是在程序执行的过程中才计算出来。2.2 strlen()求得方法是从开始到遇到第...
  • 15577649889 :c语言,strlen和sizeof
    翟态景3544 :答:1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如:short f();printf("...
  • 15577649889 :C语言中sizeof和strlen函数区别在哪?
    翟态景3544 :答:1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。sizeof还可以用函数做参数,比如:short f();printf("...
  • 15577649889 :c语言sizeof和strlen的区别
    翟态景3544 :答:1、指代上的区别 (1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。(2)strlen:做的是一个计数器。2、用法上的区别 (1)sizeof:sizeof( type_name ); // sizeof(type); 在编译时有效,而不是在运行时有效。(2)strlen:extern unsigned int strlen(char *s); 返回s...
  • 15577649889 :sizeof和strlen在c语言的区别是什么?
    翟态景3544 :答:1、指代上的区别 (1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。(2)strlen:做的是一个计数器。2、用法上的区别 (1)sizeof:sizeof( type_name ); // sizeof(type); 在编译时有效,而不是在运行时有效。(2)strlen:extern unsigned int strlen(char *s); 返回s...
  • 15577649889 :sizeof(x),strlen(x)请问这两个是什么意思?
    翟态景3544 :答:sizeof(x)表示求它的字节长如sizeof(char)=1 ,strlen(x)求其字符串的长度
  • 15577649889 :C语言中p[20]={'a','b','c'}中的sizeof(p)和strlen(p)分别是? q[]=...
    翟态景3544 :答:strlen()是用来求字符串的长度,你里面至初始化了3个值 sizeof(q)是求字符数组的长度,虽然你只初始化了3个数组元素,但第四个元素系统会自动赋值为'\0','\0'是字符串结束的表示;但用strlen()函数来长度的值的时候是不包括'\0'的 希望不明白可以继续提问,乐意回答 呵呵 ...
  • 15577649889 :c语言 字符数组 字符指针 sizeof strlen 的区别
    翟态景3544 :答:1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网