当前位置: 首页 > news >正文

C++面试题总结(三)

       本辑涵盖引用与指针、堆栈溢出、虚函数、类型比较、宏定义、内存操作、位域、字节序、算法实现等常见考点。

一、基础概念与语法

1. 引用与指针的区别

区别点引用指针
初始化必须初始化可以不初始化(但易成野指针)
可改变性初始化后不可改变指向可以随时改变指向
空值不存在空引用可以指向空(NULL)
语法直接使用,如同变量需要 * 解引用

 2. 堆栈溢出一般由什么原因导致?

        答:主要原因是**没有及时回收垃圾资源**(如动态内存未释放、递归过深等)。更准确地说,堆栈溢出常见于:
(1).递归调用层次太深,栈帧累积
(2).局部变量(尤其大数组)占用过多栈空间
(3).内存泄漏导致堆耗尽,间接影响栈?

3. 什么函数不能声明为虚函数?

答:构造函数不能声明为虚函数。析构函数可以且常常声明为虚函数。

4. 写出 float x 与“零值”比较的 if 语句

const float EPSINON = 0.000001; if (x >= -EPSINON && x <= EPSINON) {     // x 为零 }

注意:浮点数不能直接用 `==` 与 `0.0` 比较。

5. 不能做 `switch()` 的参数类型是什么?

        答:`switch` 的参数不能为实型(浮点型),也不能为字符串。只能是整型、字符型、枚举型。

6. 头文件中的 `#ifndef/#define/#endif` 有什么用?

        答:防止头文件被重复引用,是预处理指令。

7. `#include <filename.h>` 与 `#include "filename.h"` 的区别

  • `#include <filename.h>`:编译器从标准库路径开始搜索。
  • `#include "filename.h"`:编译器从用户工作路径开始搜索。

 8. 为什么在 C++ 中调用 C 编译器编译的函数需要加 `extern "C"`?

        答:C++ 支持函数重载,编译时会生成修饰名(如 `_foo_int_int`),而 C 编译后符号为 `_foo`。`extern "C"` 告诉 C++ 编译器按照 C 的方式编译链接,以便正确调用 C 函数。

9. 字符串数组与指针的比较 

char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout << (str1 == str2) << endl; // 0 cout <<
http://www.jsqmd.com/news/733954/

相关文章:

  • TastyIgniter备份与恢复:确保餐厅数据安全的完整策略
  • 第三章:Maven高级篇 — 插件开发与多模块工程
  • Pentaho Data Integration完整掌握:从零开始构建数据管道的7个核心技能
  • 为什么92%的Laravel团队在AI集成中踩坑?——基于37个真实项目复盘的12个致命错误清单与修复代码库
  • yq性能优化终极指南:内存管理和流式处理技巧大全
  • 为Claude Code编程助手配置Taotoken作为后端模型服务提供商
  • FStar核心概念解析:依赖类型、效果系统和验证策略的终极指南
  • Pipe库测试驱动开发:如何编写可靠的管道操作单元测试
  • 程序员必备的完整测试策略指南:从单元测试到集成测试实践
  • AI助手技能商店ags:安全扩展AI编程助手能力的工程实践
  • VirtualBox 创建虚拟机并安装 Ubuntu 系统详细指南
  • Postal邮件服务器MCP集成:AI工作流自动化与邮件管理新范式
  • 零停机迁移终极指南:Agno多智能体系统的无缝切换策略
  • Bilibili视频下载器:解锁4K大会员内容的Python技术实现详解
  • html2text配置全解析:50+参数自定义你的转换效果
  • 终极指南:如何让Switch完美支持Xbox和PS第三方控制器
  • Pi-hole云原生终极指南:在Kubernetes中部署广告拦截神器
  • 从开机冲击到雷击防护:EMI滤波电路如何像‘保镖’一样守护你的电脑电源?
  • TAPE框架:提升语言模型代理可靠性的关键技术
  • Flux架构终极指南:如何组织大型React项目的目录结构
  • 企业级AI图像安全:Diffusers安全配置终极指南
  • CF2227G (2000)树状数组+条件转化
  • 如何使用edb-debugger:多架构调试的终极指南
  • 还在为B站视频下载烦恼?BBDown命令行神器让你轻松搞定离线收藏
  • OpenHTMLtoPDF常见问题解决方案:处理复杂布局和字体问题
  • 从科研到游戏:用MATLAB scatter3玩转三维粒子特效(含完整代码包)
  • 使用 Taotoken 为部署在 Ubuntu 上的开源项目提供可持续的大模型支持
  • 如何使用FairyGUI-unity打造视觉震撼UI:BlurFilter与ColorFilter实战指南
  • 如何实现Skaffold与Prometheus/Grafana的完美集成:监控Kubernetes开发全流程
  • Windows 11系统优化终极指南:3步实现51%性能提升的免费开源工具