1 static在类内和在函数内有啥区别?
类内:所有对象共享一份,类外初始化。函数内:第一次调用初始化,生命周期贯穿程序全程,但作用域仅在函数内。
2 找编译错误的题目?
常见编译错误:缺分号、缺头文件、变量未声明、类型不匹配、const对象被修改、父类析构非虚。
3 给定某一个ip地址,转换为十进制点分制,可以划分为几个段,最大/最小网络分别是多少?
IPv4点分十进制如192.168.1.1,固定划分4段。最小网络是主机位全0的网络地址,最大网络是主机位全1的广播地址,具体数值取决于子网掩码。
4 复习MySQL的增删改查语句?
增:INSERT INTO 表 VALUES (...)。删:DELETE FROM 表 WHERE 条件。改:UPDATE 表 SET 列=值 WHERE 条件。查:SELECT * FROM 表 WHERE 条件。
5 运算符优先级?
从高到低:() \[\] -> . → ! ~ ++ -- * & (类型) → * / % → + - → << >> → < <= > >= → == != → & → ^ → | → && → || → ?: → = → ,。口诀:单目算术移位关系,相等位与异或或,逻辑条件赋值逗号。
6 ((a=b<c)||(d=e>f))的结果是啥,a=?
若b<c为真,则a=1,短路导致右边不执行,整体结果为1。若b<c为假,则a=0,执行右边,d=(e>f)得0或1,整体结果仍为1。
7 length/size/strlen/sizeof的区别?
length()是C++ string的字符个数。size()是容器元素个数,string也有。strlen()是C字符串\0前的字符数,运行时计算。sizeof()是内存字节数,编译时计算,数组名返回整个数组大小。
8 C++各个容器的方法?
vector:push_back/pop_back/size/\[\]/at/begin/end。list:push_front/back/pop_front/back/insert/erase。map/unordered_map:insert/erase/find/\[\]/count。set:insert/erase/find/count。string:push_back/append/substr/find/size。
9 拷贝构造?
用已有对象创建新对象时调用,格式为类名(const 类名& other)。不写则编译器提供默认浅拷贝,指针成员会出问题。
10 reserve()?
只给vector或string预分配内存,不改变size,作用是减少多次扩容带来的性能损耗。
11 函数指针/指针函数?
函数指针是指向函数的指针,写法int (p)(int)。指针函数是返回指针的函数,写法int f(int)。
12 大端存储,小端存储?
大端:高字节存低地址,网络字节序。小端:低字节存低地址,x86架构。例如0x1234,大端存12 34,小端存34 12。