当前位置: 首页 > 面试经验 >

同花顺二面(C++开发)

优质
小牛编辑
93浏览
2023-10-07

同花顺二面(C++开发)

1.手撕一道easy题

给一个整形数字,交换其中的两位,得到最大值

比如 1234 得到 4231

2.实习经历(项目难点,我这实习做的项目没难点啊我能怎么办)

3.const和define 的区别

编译阶段:define 是在编译预处理阶段进行替换,const 是在编译阶段确定其值。

安全性:define 定义的宏常量没有数据类型,只是进行简单的代码替换,不会进行类型安全的检查;const 定义的常量是有类型的,是要进行判断的,可以避免一些低级的错误。

存储空间:define 定义的宏定义只是作为代码替换的表达式而已,宏定义本身不占用内存空间,define 定义的宏常量,在程序中使用多少次就会进行多少次替换,内存中有多个备份,实际使用宏定义替换代码时占用的是代码段的空间;const 定义的常量占用静态存储区的只读空间,程序运行过程中常量只有一份。

define 可以接受参数构造非常复杂的表达式,const 不能接受参数。

4.new和malloc的区别

new和delete一起使用,new在申请的时候会初始化,不能改变申请空间的大小。

malloc和free使用,malloc在申请的时候只会返回一块内存空间,malloc可以改变申请空间的大小。

new 是 c++ 中的一个操作符,而 malloc 是 C 中的一个函数。new 作为一个运算符可以进行重载,而 malloc 作为一个函数不支持重载。

new 可以指定内存空间初始化对象,而 malloc 只能从堆中申请内存。

5.delete和free的区别

delete 是 C++ 中的一个操作符,如果对象存在析构函数,它首先执行该对象所属类的析构函数,进而通过调用 operator delete 的标准库函数来释放所占的内存空间。delete 用来释放单个对象所占的空间,只会调用一次析构函数;delete [] 用来释放数组空间,会对数组中的每个元素都调用一次析构函数。

free 只会释放指向的内存,不会执行对象的析构函数;delete 则可以执行对象的析构函数;free 函数只是将参数指针指向的内存归还给操作系统,并不会把参数指针置 NULL,为了以后访问到被操作系统重新分配后的错误数据,所以在调用 free 之后,通常需要手动将指针置 NULL。

delete 是 C++ 中的一个操作符,可以进行重载;而 free 是 C 中的一个函数,不能进行重载;

6.问了一个比赛,问我这个比赛是啥规模、等级

。。。。。。

其他的问了一些个人情况,基本没问啥,感觉问的很少。

#同花顺#
 类似资料: