阿里巴巴电话面试C/C++基础知识整理【面试经验】

笔者今天接到阿里巴巴的电话面试邀请,感觉基础知识薄弱。还需要加强学习,下面将这方面相关的知识整理,与大家共同学习共勉。

基础的知识: STL容器,算法。

重点的知识:C/C++强调速度和内存管理,指针,内存这是重点。

 

 

引用和指针的区别与联系

区别

  1. 指针是一个实体他在栈中有自己使用的空间,但是引用没有;
  2. 引用必须初始化,指针不用但是最好初始化
  3. 指针使用时必须加*,引用不用;
  4. 引用只能初始化一次是个专一的人,指针不是;
  5. 引用不用const去修饰,但是指针可以
  6. 指针和地址运用自增(++)不同,引用是值进行自增,而指针是地址进行自增;

联系

  1. 引用的内部使用指针实现的
  2. 引用是受了限制的指针

内存分配的3个空间哪个效率更高

 分配效率:栈是机器系统提供的数据结构,计算机会在底层对栈提供支持,分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。堆则是C/C++函数库提供的,它的机制是很复杂的,例如为了分配一块内存,库函数会按照一定的算法(具体的算法可以参考数据结构/操作系统)在堆内存中搜索可用的足够大小的空间,如果没有足够大小的空间(可能是由于内存碎片太多),就有可能调用系统功能去增加程序数据段的内存空间,这样就有机会分到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值