qzgx.net
当前位置:首页 >> strlEn和sizEoF的结果 >>

strlEn和sizEoF的结果

sizeof()用来计算内存的 strlen用来计算字符长度的.来个具体点的,一看就知道了.char a[] = "hello"; sizeof(a) = 6; strlen(a) = 5; sizeof会计算字符结尾的\0 strlen 不会计算\0 sizeof操作符返回占的空间;而对于一个数组,sizeof返回这个数组所有元素占的总空间.而strlen不区分是数组还是指针,就读到\0为止返回长度.而且strlen是不把\0计入字符串的长度的.

明显是c语言的,strlen指字符的长度 sizeof指文件或者数据占的内存(字节)

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

sizeof和strlen没有任何相似的地方. strlen计算的是字符串长度的函数,直到遇到'\0'结束,结果不包括'\0'在内. sizeof是一个运算符,在编译的时候就计算结果了,可以确定一个变量、类型、数组占用的内存空间.

一、sizeof sizeof()是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等.它的功能是:获得保证能容纳实现所建立的最大对象的字节大小.由于在编译时计算,因此sizeof

sizeof计算括号内字符串或某种数据类型的字节数; strlen计算括号内字符串的长度;(可以说考虑的方面不同,一个是从字节的角度来看,一个是从字符的角度来看的).

① sizeof是运算符,计算数据所占的内存空间;strlen()是一个函数,计算字符数组的字符数;② sizeof可以用类型作参数;strlen()只能用char*作参数,必须是以'/0'结束 ③ 数组做sizeof的参数不退化,传递给strlen就退化为指针了; ④ sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型.该类型保证能容纳实现所建立的最大对象的字节大小

char* ss = "0123456789"; cout<<sizeof(ss)<<endl;//4 cout<<sizeof(*ss)<<endl;//1 cout<<strlen(ss)<<endl;//10 char ss1[] = "0123456789"; cout<<sizeof(ss1)<<endl;//11 cout<<sizeof(*ss1)<<endl;//1 cout<<strlen(ss1)<<endl;//10 char ss2[

sizeof(str),其中str为字符串的头指针,指针占的空间为4字节,即为4strlen(str),计算str的有效长度,hello长度为5,输出为5;sizeof(s),s 是一个字符串,此时,sizeof 计算的是这个字符串的长度,除了hello占5个字节以外,还有一个字节的'\0'表示字符串结束,总共为6;希望楼主能明白

char* ss = "0123456789"; sizeof(ss); //结果 4, ss是指向字符串常量的字符指针 sizeof(*ss); //结果 1, *ss是第一个字符 char ss[] = "0123456789"; sizeof(ss) ; //结果 11, ss是数组,计算到'\0'位置,因此是10+1 sizeof(*ss); //结果 1, *ss是第

网站首页 | 网站地图
All rights reserved Powered by www.qzgx.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com