• sizeof和strlen的区别 分类: C/C++ 2015-07-03 09:05 169人阅读 评论(0) 收藏


    1、sizeof是运算符,strlen是函数;

    2、sizeof可以用类型作为参数,而strlen只能用char*型量作为参数,且必须以‘’结尾;

        sizeof(int)=4;

    3、数组名作为sizeof的参数时,不会退化为指针,而作为函数的参数的时候会退化为指针;

       char a[10]="abc";

       sizeof(a)=10;

       strlen(a)=4;

       f(int *a[])

       {

           sizeof(a)=4;

           //因为已经退入为指针

       }

    4、sizeof的值在编译时就已经确定,所以sizeof(x)可以用来创建数组,而strlen的值要在运行期才能确定;

       char a[sizeof(int)];

    5、sizeof计算的是栈上分配的空间的大小,所以static(全局数据区)、动态数组(堆)无法用sizeof统计大小;

    6、用sizeof计算结构变量大小时,一定要注意数据对齐问题;

    (C++传统数组作为参数,传递的都是指向数组首地址的指针,数组长度需要额外形参传入,当然,也可以用容器)

    7、还有一个问题:sizeof(string)的大小和编译器有关,一般是4。

  • 相关阅读:
    数据库存储过程
    asp.net类中公共类DBHelp
    asp.net Cookie的用法实例
    使用SandCastle创建.Net帮助文档
    DotNetNuke(DNN)如何升级到DNN 4.9.3
    两个VS的文档工具
    SunBlogNuke.net logo设计
    自动化测试网站
    Debugging DLL Projects
    .NET 下自动生成UML图
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687074.html
Copyright © 2020-2023  润新知