zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SAP组件和支持包的安装
    abap动态内表获取字段名
    ooalv设置保存格式
    READ_TEXT取的文本&变为 <(>&<)>了怎么办
    SAP后台作业相关表
    63013
    ABAP 对内表数据下载到EXCEL的几种方法
    vue 教程
    spring 注解@PathVariable
    MyBatis动态添加—trim标签
  • 原文地址:https://www.cnblogs.com/PrayG/p/10681330.html
Copyright © 2011-2022 走看看