一些面试基础知识点(1)

一些老掉牙的知识点,就怕阴沟里翻船,全部翻出来看看。

内存对齐,sizeof,strlen类问题:

    这类问题都是考基本的内存方面的问题,基本类型的数据么,主要是字符串和指针的问题,字符串主要尾部的\0,指针注意32位机器上都是4字节的。复合类型就有对齐的问题,简单来说是由成员的对大对齐单位来指定的。具体看例子:

    char ss[] = "1234";

    std::cout<<sizeof(ss);  //输出5

    std::cout<<strlen(ss);  //输出4



    char ass[100] = "1234";

    std::cout<<sizeof(ass); //输出100



    char* pss = "1234";

    std::cout<<sizeof(pss); //输出4



    int ai[100] = {0};

    std::cout<<sizeof(ai); //输出400

    std::cout<<sizeof(*ai); //输出4



    struct a {

        short aa;

        short ab;

        short ac;

    }aaa;



    struct b {

        long ba;

        short bb;

    }bbb;

    std::cout<<sizeof(aaa); //输出6

    std::cout<<sizeof(bbb); //输出8



    class cc {

    public:

        void trivial(){}

        int a;

        int b;

        char c;

    };

    std::cout<<sizeof(cc); //输出12



你可能感兴趣的:(面试)