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[2]?=?{0};
sizeof(a);?//它的值是8,因为a中有2个int型变量,每个int型占4个字节,所以8字节
在C++中,char *s,sizeof(s)和strlen(s)有什么不同啊?
strlen是返回一个字符串的长度,到'\0'截止。
比如a[0]='0'; a[1]='1'; a[2]='\0';
这时strlen(a)就会返回2
即使a[3]不为'\0'也会返回2
sizeof是返回这类型的数据多占的空间。一般用memset给一个数组赋初值时和读取一行字符时用。
比如memset( data, 0, sizeof( data ) );
这个意思就是给data数组全部元素赋值为0
getline是读取一行
一般这么写
cin.getline( data, sizeof( data ) );
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
char aa[10];cout
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!