您的位置首页百科知识

如何理解sizeof和strlen的区别

如何理解sizeof和strlen的区别

的有关信息介绍如下:

如何理解sizeof和strlen的区别

sizeof与strlen分别计算占用空间大小与字符串大小,尤其是在对字符数组时,经常会被错误使用。

本文全面介绍sizeof与strlen的用法,以及它们之间区别。

sizeof不是函数,是运算符。而strlen是标准库中提供的计算字符串长度的函数。

sizeof计算数据所占用内存大小,以字节为单位。char为一个字节,int通常为4个字节。

sizeof计算指针与数组时,通常指针为4个字节,而对于数组为数组类型乘以数组大小。

通常我们认为数组名也可以表现为指针,但当用于sizeof运算符时,数组名不会退化为指针。

strlen计算字符串长度,字符串以0作为结束符。strlen返回字符串长度不包括末尾的0。

通过分析sizeof运算符与strlen函数,当计算字符串指针时,sizeof返回4,而strlen返回字符串大小。

当计算字符数组大小时,sizeof返回整个数组占用内存大小,而strlen返回字符数组中截止到0大小。

尤其要注意,如果字符数组中没有0结束符,则strlen函数会返回一个错误的结果。