一些面试基础知识点(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

浙公网安备 33010602011771号