当前位置: 首页C++C++基础正文 sizeof 和strlen 的区别 C++基础 3 12.0K sizeof是一个操作符,strlen是库函数。 sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0’的字符串作参数。 编译器在编译时就计算出了sizeof的结果,而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。 数组做sizeof的参数不退化,传递给strlen就退化为指针了 C++基础 帅地永久会员 打赏 收藏 海报挣佣金 推广链接
评论(4)
“数组做sizeof的参数不退化,传递给strlen就退化为指针了”这句应该怎么理解呢
数组名做为形参传递时,会退化为指针
sizeof计算出来的数据类型占内存的大小好像和编译器有关,相同类型在不用编译器占得字节不同
是的,比如int *p,在32位操作系统下算出来是4,64位下算出来是8