阿里C岗面试题及详细答案.docxVIP

  • 1
  • 0
  • 约1.13万字
  • 约 12页
  • 2026-06-06 发布于河北
  • 举报

阿里C岗面试题及详细答案

一、基础能力题(必问,考察功底扎实度)

1.问题:C语言中,指针和引用的区别是什么?实际开发中你怎么选择使用?

答案:首先说核心区别,3点最关键,不绕弯子:

1.指针可以为NULL,引用不能为NULL,必须初始化绑定一个有效变量,这是最本质的区别——比如我做项目时,若某个参数可能不存在(比如可选配置),就用指针,传NULL表示无;若参数必须存在(比如核心数据的传入),就用引用,避免空指针判断的麻烦。

2.指针可以重新赋值,指向另一个变量;引用一旦绑定,就不能更改指向。比如遍历数组时,用指针自增(p++)切换指向,很方便;但如果是固定绑定某个核心变量(比如类的成员引用),就用引用,防止误操作改变指向。

3.指针需要解引用(*p)才能访问值,引用直接访问即可,本质是变量的“别名”;实际开发中,引用的可读性更好,适合作为函数参数传递(避免指针解引用的繁琐),指针适合需要动态指向、或者做内存分配(比如malloc后返回指针)的场景。

补充:阿里这边考察这个题,重点不是背区别,而是看你实际用没用到——比如我之前做过一个数据解析模块,用指针接收动态分配的缓冲区,用引用传递固定的配置参数,既保证了灵活性,又减少了空指针风险,面试官听到这种实际场景,会更认可。

2.问题:C语言中,malloc和calloc的区别,以及内存泄漏怎么排查?

答案:先讲mal

文档评论(0)

1亿VIP精品文档

相关文档