请教一个C语言strlen和sizeof的问题

int main(void)
{
char cr[12];

printf("%d %d\n",strlen(cr),cr);
printf("%d %d\n",sizeof(cr),cr);

return 0;
}

strlen(cr)的结果是23,请问是怎么得到的?strlen和sizeof在求长度运用上区别是?

strlen必须用在'\0'字符结尾的字符串上,否则结果就是不确定的……
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-28
sizeof 是关键字 其参数可以是类型 也可以是对象,也可以是表达式,当是表达式时不对表达式进行运算 。可以如下测试
int i=0;
sizeof(i=100);
printf("%d",i);
strlen 是函数其参数要求 const char *对象或者可以转换成const char *
同时其要求 参数字符串以 \0 结尾,否则结果不正确,也可能内存访问冲突。
你的strlen(cr)的结果是不可预测的。

sizeof与strlen区别
在编程中,`sizeof` 和 `strlen` 是两个常用的函数,它们分别用于获取变量或类型占用的内存大小以及字符串的长度。`sizeof` 是一个运算符,用于获取类型或变量所占的内存空间大小,而 `strlen` 是一个函数,用于计算以 `'\\0'` 结尾的字符串的长度。`sizeof` 返回的结果是 `size_t` 类型,一...

c语言sizeof和strlen的区别是什么?
一、指代不同 1、sizeof:用于获取字符串的长度,是处理字符串的重要工具。2、strlen:所作的是一个计数器的工作。二、规则不同 1、sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要用圆括号。2、strlen:从内存的某个位置(可以是字符串开头,中间某个位置...

在C语言求字符长度的问题,strlen与sizeof怎么计算出来的长度不是我们...
sizeof(p)计算的是p变量的大小 由于p是指针,p的大小就是4字节,它不是求内容的长度,而是变量p本身的大小 同理q指针也一样 你可以试一下将指针指向的内容长度再增长,sizeof(p)仍然是4 字符指针:分配长度用strlen计算后+1 如果算数组分配长度(数组声明时的空间大小,不管字符数组是否填满)用size...

strlen和sizeof的区别
strlen和sizeof在C语言中都是常用的函数,区别在于它们的用途、返回值和计算方式。sizeof是一个运算符,而strlen是一个函数。sizeof用于计算数据类型或变量的大小,而strlen用于计算字符串的长度。sizeof可以计算类型或变量的长度,而strlen只能用于字符串。当sizeof用于类型或变量时,它返回的是该类型或变...

sizeof和strlen的区别
sizeof和strlen是两个不同的C语言函数,主要有以下区别:1. 作用对象不同:sizeof是用于计算数据类型的大小,而strlen是用于计算字符串的长度。2. 参数类型不同:sizeof可以计算任意数据类型的大小,包括基本数据类型、结构体、数组、指针等等,而strlen只能计算以空字符'\\\\0'结尾的字符串的长度,即字符...

strlen和sizeof有什么区别?
关于strlen和sizeof的区别解析 首先,我们要明确这两个概念在C语言中的不同定位。strlen是函数,它在运行时动态计算字符数组或字符串的长度,参数必须是字符型指针。当数组名作为参数时,数组会转化为指针。其功能是遍历字符串直到遇到NULL字符,返回长度(不包括NULL)。相比之下,sizeof是一个运算符,它...

sizeof和strlen区别
sizeof和strlen区别就是含义不同,运行结果不同等。strlen表示的是一个计数器的工作,它是从内存的某个位置(这里的位置可以是字符串开头,中间某个位置,也可以是某个不确定的内存区域)开始扫描,然后直至碰到第一个字符串结束符'\\0'为止,然后返回计数器值。sizeof在C语言中,是用于判断数据类型或者...

C语言中sizeof与strlen的区别是什么
1、指代上的区别 (1)sizeof:用来获取字符串长度的导引,是处理字符串的重要工具。(2)strlen:做的是一个计数器。2、用法上的区别 (1)sizeof:sizeof( type_name ); \/\/ sizeof(type); 在编译时有效,而不是在运行时有效。(2)strlen:extern unsigned int strlen(char *s); 返回s...

C语言中,sizeof和strlen都是表示字符串长度的吗?谁能告诉我它们两者的区...
sizeof 计算的是数据在内存中存放的长度,单位是“字节”,可以对任何数据类型做运算,而且它是一个运算符(和+、-、*、\\类似);当对字符串计算时,包含末尾的"\\0";当对字符数组操作时,返回的是数组的总的长度,也就是当把数组作为参数传递给sizeof时是不会退化的。strlen 计算的是字符串的...

C语言中sizeof和strlen函数区别在哪?
1、操作 strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\\0'停止。而sizeof()返回的是变量声明后所占的内存数,不是实际长度。2、参数类型 sizeof可以用类型做参数,strlen...

相似回答
大家正在搜