首页 > 其他 > 详细

strlen 和 sizeof 区别

时间:2021-04-13 21:35:44      阅读:20      评论:0      收藏:0      [点我收藏+]

strlen 和 sizeof 的区别

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char str[10] = "Book";
    cout<<sizeof(str)<<endl;
    cout<<strlen(str)<<endl;
    cout<<"Hello world"<<endl;
    return 0;
}
//返回:10,4
  1. strlen 是函数,在运行的时候才可以计算,参数必须是字符型指针(char *),且必须以 ‘\0’结尾。当数组名作为参数传入的时候,实际上数组已经退化为指针了。功能是返回字符串长度。
  2. sizeof 是运算符,在编译的时候计算好,用于计算数据空间的字节数,因此sizeof 不能用来返回动态分配的内存空间大小。sizeof 通常用于返回类型和静态分配对象,结构或者数组所占的空间,返回值跟对象,结构,数组所存储的内容没有关系。

(1)数组---编译时分配的数组空间的大小,例子如上。

(2) 指针---存储该指针所用的空间大小,如:

char *str = "I am from China.";
//因为str存储的是一个字符指针,所以sizeof(str)是指针占用空间,为4B

(3)类型---返回该类型所占用空间大小。

(4)对象---返回对象实际占用空间大小。

(5)函数---函数返回的类型所占空间大小,且函数返回类型不能为void。

strlen 和 sizeof 区别

原文:https://www.cnblogs.com/Ivessas/p/14655149.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!