• strlen() 和 sizeof() 的区别


    1.strlen() 时函数,他在程序运行时才能计算。它的参数类型要求时 char *,且必须是以'/0'结尾。数组在传入时已经退化为指针。它的作用是返回数组中字符串的长度。

    2.sizeof()时运算符,它在程序编译时就已经计算好了,用于计算数据空间的字节数。所以它不能用于返回动态分配的内存空间大小,常用于静态分配的类型,对象,结构或数组所占的空间。返回值和他们所存储的内容没有关系。

    当参数如下时,sizeof返回的值如下:

    1.数组--返回的时数组空间的大小

     char a[10] = "hello";

    sizeof(a)返回值为10。因为char 占1Byte,所以值为10 * 1 = 10 Byte

    2.指针 -- 返回的是指针在内存所占空间的大小

      char * a = "hello world";

    sizeof(a) 返回的值是 指针大小,32位机器下时4Byte

    3.类型 -- 返回类型在存储空间所占的大小

      int a = 4;

    sizeof(a) 返回的值时4Byte,因为int 类型在内存空间中所占的大小是4Byte。

    4.对象 -- 该对象实际占用的空间大小

    class a
    {
        int b,c;
        int fun();
    }class_a;

    sizeof(class_a) 返回的值是两个int类型数据所占的空间的大小 也就是8Byte。

    5.函数--函数的返回类型所占空间的大小,且返回类型不能是void

  • 相关阅读:
    关于给Tomcat设置maxPostSize的问题
    完美激活PyCharm教程
    Tomcat +Nginx+Redis实现session共享
    python 上传多文件
    吸引注意力的动画
    Create React App 安装less 报错
    2020软件工程作业01
    yum用法
    rpm包的管理
    共享依赖库的误移或误删解决办法
  • 原文地址:https://www.cnblogs.com/PrayG/p/10681330.html
Copyright © 2020-2023  润新知