• 计算结构体、数组、指针的sizeof


    1. 结构体的sizeof

    题目:

    sturct aa
    {
    in num;
    char name[10];
    };

    struct bb
    {
    int a;
    float b;
    struct aa c;
    };

    struct bb a;

    计算 sizeof(a) 的值

    ----------------------

    计算过程:

    结构体a为bb类型,计算sizeof(a),就是将bb类型中,所有的成员的sizeof求总和。如果有数组,则乘上数组的长度。

    所以
    1. bb 中a的长度 2(int);
    2. bb 中b的长度 4(float);
    3. bb 中的c又为结构体,其类型为aa. 其长度为:
        num的长度 2(int)
        name的长度 为 1 * 10 = 10 (char长度为1)


    所以总长度为 2 + 4 + 2 + 10 = 18.  即sizeof(a) =18

    ==========================================================================

    2. 数组和指针

    double a;

    double *b;

    double c[5];

    char* pt[3];

    char pq[3];


    分别计算 a, b , c, pt, pq 的 sizeof


    解答:
    size(a) = 8;
    size(b), 为求指针的sizeof,永远为2;
    size(c), 8 * 5 = 40;
    size(pt), 首先pt为一个数组,长度为3。并且里面的元素都是指向char的指针。
      所以sizeof(pt) = 3 * 2 = 6
    sizeof(pq), = 3

  • 相关阅读:
    VScode网页开发工具
    Java修饰符总结
    C++进阶补充
    C++进阶
    计算机简单开发的基础
    C++动态规划和递归
    C++设计模式
    C++ virtual
    C++-基于STL的演讲比赛流程管理系统
    C++6(5补充)
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/4854076.html
Copyright © 2020-2023  润新知