strlen和sizeof的区别

来源:互联网 发布:刘国梁卸任原因 知乎 编辑:程序博客网 时间:2024/06/11 05:52

 

  • strlen是有效字符串的长度,不包含‘\0’,与初始化有关系.
    而sizeof()函数返回的是变量声明后所占的内存数,不是实际长度。
  • 大部分编译程序 在编译的时候就把sizeof计算过了,strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。
    如:
    char str[20]="12345";
    int a=sizeof(str); //a=20
    int b=strlen(str); //b=5

  • sizeof是算符,strlen是函数。

  • sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。
    sizeof还可以用函数做参数,比如:
    short f();
    cout<<sizeof(f())<<endl;

  • 输出的结果是sizeof(short),即2。
  • 原创粉丝点击