• sizeof运算符、字节对齐考点(面宝P50)


    记住几句话:

      结构体的长度一定是最长的数据元素类型的整数倍;

      某数据元素的起始地址能被该类型所占的字节数整除;

      静态变量是存放在全局数据区,而sizeof计算栈中分配的大小,不包括static变量;

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    struct{//6
        short a1;
        short a2;
        short a3;
    }A;
    struct{//8
        char c1;
        char c2;
        short s;
        int i;
    }B;
    struct{//12
        char c1;
        short s;
        char c2;
        int i;
    }C;
    class D{//4
    public:
        int b;
        static char c;
    };
    struct{//22!!(总大小是2的倍数)
        char d;
        short b[8];
        char a[3];
    }E;
    struct{//32!!
        char a[10];
        int b;
        char c;
        double d;//(起始地址是8的倍数)
    }F;
    class G{//24!!(总大小是8的倍数)
    public:
        double d;
        float a;
        int b;
        char c;
        G();
        ~G();
    };
    int main(){
        cout<<sizeof(A)<<" ";
        cout<<sizeof(B)<<" ";
        cout<<sizeof(C)<<" ";
        cout<<sizeof(D)<<" ";
        cout<<sizeof(E)<<" ";
        cout<<sizeof(F)<<" ";
        cout<<sizeof(G)<<" ";
        return 0;
    }

    运行结果:

  • 相关阅读:
    check datagurad scripts using python
    nagios check_oracle plugin (add check temp tablespace)
    monitor tomcat sctips
    ATM 练习
    socket 练习 ftp
    socket 练习 sendcommand
    带你走进虚拟化世界之kvm(转载)
    luogu2732商店购物
    uva1625颜色的长度
    luogu3147 [USACO16OPEN]262144
  • 原文地址:https://www.cnblogs.com/seven7seven/p/3621605.html
Copyright © 2020-2023  润新知