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

  • 相关阅读:
    人与人之间的距离
    Web API之service worker
    css背景图等比例缩放,盒子随背景图等比例缩放
    js节流函数高级版
    vue实现百度搜索下拉提示功能
    vue实现图片点击放大
    css图片宽高相等设置
    sublime常用插件及配置
    css揭秘读书笔记
    webpack2.0简单配置教程
  • 原文地址:https://www.cnblogs.com/PrayG/p/10681330.html
Copyright © 2011-2022 走看看