• C 语言 sizeof运算符


    C 语言 sizeof运算符

    sizeof运算符在C语言中使用时,它决定表达式的大小或在char大小的存储单元数量中指定的数据类型。sizeof运算符包含一个操作数,该操作数可以是表达式,也可以是数据类型转换,其中转换是用括号括起来的数据类型。数据类型不仅可以是基本数据类型,还可以是指针数据类型和复合数据类型。

    sizeof运算符的作用

    程序要知道原始数据类型的存储大小。尽管数据类型的存储大小是恒定的,但在不同的平台上实现时它会有所不同。例如,我们可以使用sizeof运算符动态分配。

    示例

    int *ptr=malloc(10*sizeof(int));
    
    • 1

    在上面的示例中,我们使用了sizeof()运算符,该运算符应用于int类型的转换。我们使用**malloc()**函数分配内存,并返回指向该已分配内存的指针。内存空间等于int数据类型占用的字节数并乘以10。

    **注意:**输出在不同的机器上可能会有所不同,例如在32位操作系统上将显示不同的输出,在64位操作系统上将显示相同数据类型的不同输出。

    sizeof运算符的行为根据操作数的类型而有所不同。

    • 操作数可以是一种数据类型
    • 操作数可以是一个表达式

    当操作数是数据类型时。

    示例

    #include 
    int main()
    {
        int x=89;    //变量声明
        printf("变量x的大小是 %d", sizeof(x));  //显示x变量的大小
        printf("\ninteger数据类型的大小为 %d",sizeof(int)); //显示整数数据类型的大小。
        printf("\n字符数据类型的大小为 %d",sizeof(char)); //显示字符数据类型的大小
    
        printf("\n浮动数据类型的大小为 %d",sizeof(float)); //显示浮动数据类型的大小。
    return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在上面的代码中,我们借助**sizeof()**运算符来打印不同数据类型(如int,char,float 大小

    输出结果

    变量x的大小是 4
    integer数据类型的大小为 4
    字符数据类型的大小为 1
    浮动数据类型的大小为 4
    
    • 1
    • 2
    • 3
    • 4

    当操作数是表达式时

    示例

    #include 
    int main()
    {
      double i=78.0; //变量初始化。
      float j=6.78; //变量初始化。
      printf("(i+j) 表达式的大小为 : %d",sizeof(i+j)); //显示表达式的大小(i + j)。
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在上面的代码中,我们分别创建了两个类型为double和float的变量’i’和’j’,然后使用sizeof(i + j)运算符打印表达式的大小

    输出结果

    (i+j) 表达式的大小为 : 8
    
    • 1
  • 相关阅读:
    Nacos服务注册和配置中心(Config,Eureka,Bus)1
    BCYD-A10-33-L85、BCYD-A16-21-S150电比例先导阀放大器
    Jetty各版本历史
    2022年史上最全Java面试题:数据结构+算法+JVM+线程+finalize+GC
    Day29_10 JavaWeb之Servlet及Servlet细节
    Spring学习③__Bean管理
    React(一):入门React一篇文章就够了 - React + Router + Mobx + Antd
    ETL工具-nifi干货系列 第十六讲 nifi Process Group实战教程,一文轻松搞定
    Spire.Office for .NET 7.11.0 冬季之约好时光~@~
    vue-za-swiper 技术方案
  • 原文地址:https://blog.csdn.net/Tom_Jerry__/article/details/134455876