- 0
- 0
- 约3.46千字
- 约 5页
- 2026-07-08 发布于河北
- 举报
华为面试基础测试题(含详细接地气答案)
一、C/C++编程基础(华为必考核心)
1、全局变量和局部变量的区别,内存存储位置有什么不同?
详细答案:首先作用域不一样,全局变量整个项目所有文件都能调用,局部变量只在当前函数、代码块里生效,出了范围就失效。
内存层面区别很明确:全局变量、静态全局变量存在静态数据区,程序运行全程占用内存,不会自动释放;普通局部变量存放在栈区,函数执行结束后系统自动回收内存,效率高但空间有限。
补充:未初始化的全局变量系统会默认赋值0,局部变量不初始化的话是随机垃圾值,直接使用会出bug。
2、局部变量能不能和全局变量重名?怎么优先调用?
详细答案:可以重名,语法完全允许。
遵循就近原则:当前代码块内优先使用局部变量,如果想强制调用全局变量,需要用「::」作用域符(C++),C语言没有这个符号,只能通过修改变量名规避冲突。
实际开发中我会尽量避免重名,可读性太差,容易隐藏逻辑bug,不符合华为的代码规范。
3、栈溢出一般是什么原因造成的?工作中怎么规避?
详细答案:栈的内存空间是系统固定分配的,很小,溢出核心就是栈内存被撑满了。
常见三个原因:第一,函数递归死循环,无限压栈;第二,函数内定义超大数组、结构体等局部变量;第三,多层函数嵌套调用过深。
规避方式:递归一定要设置终止条件;大容量数据放堆区(malloc/new动态申请);控制函数嵌套层数,复杂逻
您可能关注的文档
最近下载
- 17J925-1 压型金属板建筑构造.docx
- 2026及未来5年中国雨露麻布市场现状分析(数据调查、监测)及前景探究报告.docx
- 2026年河北省考申论a卷真题及答案解析.docx VIP
- 国标麻将番型介绍(图解).pdf VIP
- 2026年辽宁省考《申论》真题及答案解析(A卷).docx VIP
- 《露天煤矿边采边复技术规范》标准立项修订与发展报告.docx VIP
- 物流园区规划设计规范 GBT21334-2025(最新版).docx VIP
- 福建省能源石化集团财务有限公司招聘笔试题库2024.pdf
- 窗帘采购安装合同.docx VIP
- 新华人寿保险股份有限公司 健康无忧 D 款重大疾病保险利益.PDF
原创力文档

文档评论(0)