前几天面试时候遇到的问题:
给定一个十六进制字符串
"AB",转换成十六进制的整数0xab输出。
临时接到的面试通知,赶场子过去一坐下就给个题目,说实话面试了一两个星期是第一次做这方面的面试题。没有思想准备,当时脑海里就闪过两个念头,一个是左移,一个是直接进制转换。
一、 class 和 struct 的区别 C++中 class 和 struct 的区别: 继承权限,struct 的默认继承权限为 public,class 的默认继承权限为 private 。 访问权限,struct 的默认访问权限为 public,class 的默认访问权限为 private 。 网上还流传着其他一些的区别,但 ... 阅读更多
区别: 指针是一个变量类型,引用只是一个变量别名。 指针可以不用初始化,引用必须初始化。 指针可以指向空地址,引用不能指向空。 指针初始化后可以修改,引用不能修改。 其他: 引用本质上也是一个指针,内部实现是一个常量指针。 C++中一般建议使用引用,不要使用指针。函数传值建议使用 const 引用。
前几天面试时候遇到的问题:
给定一个十六进制字符串
"AB",转换成十六进制的整数0xab输出。
临时接到的面试通知,赶场子过去一坐下就给个题目,说实话面试了一两个星期是第一次做这方面的面试题。没有思想准备,当时脑海里就闪过两个念头,一个是左移,一个是直接进制转换。
一、以下代码的输出内容为
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } |
答案
|
1 2 3 4 |
打印后 打印中 打印前 panic: 触发异常 |
解析 考查 defer 和 panic 组合的情况,在有 panic 时,会先执行 defer 然后再把恐慌传递出去。 更多相关内容可查看 defer 常见 ... 阅读更多
多态是 C++中的重要内容,也是设计模式的基础。
形成多态的几个基本条件为:
多态形成的原理就是 vptr 指针和 vtable 虚函数表,当一个类中有虚函数时,编译器就会自动生成虚函数表,并生成一个 vptr 指针指向这个虚函数表。调用虚函数的时候,会通过这个 vptr 指针找到相应的虚函数表,然后再定位到对应的函数,以此来调用形成多态。
定义以下类:
|
1 2 3 4 5 6 7 8 9 10 |
class A{ public: A(): A(0) { } A(int i){ cout << "A(" << i << ")" << endl; }; A(int i, int j){ cout << "A("<< i << ", " << j << ")" << endl; } }; |
一、几者的区别 malloc/free 是 c 语言中分配内存空间的函数,malloc 创建空间,free 释放空间。 new/delete 是 c++中分配内存的操作符,new 创建空间,delete 删除空间。 new[]/delete[] 也是 C++中的操作符,用来给数组分配和释放空间。 malloc 只是简单的分 ... 阅读更多
以下数据声明都代表什么含义:
float(**def)[10];double*(*gh)[10];double(*f[10])();
int*((*b)[10]);long (*fun)int;int (*(*f)(int, int))(int);
一道很小心的面试题,主要考了指针数组、数组指针以及函数指针的概念。
例题一 不使用额外变量,通过一个表达式判断整数 n 是否为 2^x,不能使用循环语句。 思路 2^x = 2, 4, 8, 16 ...,二进制形式为 10, 100, 1000, 10000,如果 n 减 1 后和 n 做与运算答案为 0,就说明它满足 2^x 。 答案 [crayon-69560b75be16461139 ... 阅读更多
一、未定义变量的初始值和变量作用域 下列 C/C++代码的输出结果是什么:
|
1 2 3 4 5 6 7 8 9 10 |
#include <stdio.h> int i = 1; int main(){ int i = i; printf("%d ", i); return 0; } |
c 语言中,局部变量的优先级会高于全局变量。这里 int i = i; 中的 i 和全局变量中的 i 是无关的。 对于全局变量和静态变量,没有初始化系统会默认置零。而局部变量 ... 阅读更多