现在的位置: 首页 > 综合 > 正文

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

2012年11月11日 ⁄ 综合 ⁄ 共 590字 ⁄ 字号 评论关闭

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

内存对齐,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

【上篇】
【下篇】

抱歉!评论已关闭.