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

C++面试题自用-持续更新

4月25日

1.C++中值传递和引用传递的区别

值传递:将实参的值复制一份给形参,函数内部操作的是副本,改变形参不影响原来的实参。

引用传递:形参成为实参的别名,不发生数据复制,在大多数实现里编译器通常把引用编译成指针,函数内部对形参的修改会直接作用于实参。

在代码的体现上:

形参写成int x,在进入函数时会在栈上开辟一个新的空间,将实参a的值复制到这个空间里。函数内部的x和外面的a是两个独立的变量,互不干扰。

形参写成int& y,表示y是一个引用,本质上形参并不再开辟新空间存储值,而是直接指向调用处的a。函数内部的y就相当于外面a的别名,任何对y的修改都会直接反映到a上。

2.C 和 C++ 的区别?

C 语言是面向过程的编程语言,数据与逻辑分离,仅支持结构体组织数据,没有类、模板、命名空间和异常处理机制,内存管理完全依赖mallocfree手动操作,标准库功能精简,编译逻辑简单;

而 C++ 全面兼容 C,兼顾面向过程与面向对象,新增类、封装、继承、多态三大核心特性,同时引入模板、命名空间、try-catch 异常处理机制,配备 STL 标准容器与算法,内存管理除new/delete外,还依托构造析构函数与 RAII 机制实现自动化资源管理,能有效减少内存泄漏,并且 C++ 编译器会通过名字修饰支持函数重载,整体开发效率、代码复用性与项目维护性都远优于 C 语言。

3.什么是 C++ 的左值和右值?有什么区别?

在 C++ 中,左值是拥有独立内存地址、生命周期持久的表达式,能够取地址,既可以放在赋值运算符左侧也能放在右侧;右值多指字面常量、运算结果、临时对象,没有持久内存地址,只能放在赋值语句右侧,不能取地址。

C++11 之后又做了细分,左值为常规可定位对象,右值包含纯右值与将亡值;左值引用只能绑定左值,常量左值引用可绑定左值和右值,右值引用专门绑定右值和将亡值,用来实现移动语义与完美转发,二者核心区别就在于内存地址、生命周期以及引用绑定规则不同。

4.什么是 C++ 的列表初始化?

C++11 引入的列表初始化,是以花括号{}实现的统一初始化方式,可作用于普通变量、数组、聚合类型与类对象。

它语法统一通用,能有效禁止浮点转整型这类窄化隐式转换,提升代码安全性;如果类提供了接收std::initializer_list的构造函数,就能直接用一组值初始化对象;同时还能规避旧式语法中的最烦人的解析问题,分为直接列表初始化、拷贝列表初始化与聚合初始化多种形式,是 C++ 中更规范、安全的初始化方案。

补充:什么是 std::initializer_list 构造函数?:就是让对象能用 { } 直接传一堆值的构造函数。std::initializer_list 是 C++11 用来接收花括号里一堆值的工具类型,只要类写了这种构造函数,就能直接用{}传一组值初始化。

解析问题:就是写括号 () 初始化时,编译器把对象定义误判成函数声明,用列表初始化{}可以完美避免。

聚合初始化是对结构体、数组这类简单聚合类型,直接用 {} 给成员依次赋值的初始化方式。

http://www.jsqmd.com/news/706298/

相关文章:

  • Save Image as Type终极指南:如何在Chrome中一键转换图片格式
  • Java开发者如何用LangChain4j构建企业级AI应用:从RAG到智能体
  • 基于T5模型的多语言翻译系统实战指南
  • 机器学习数据准备框架:提升模型效果的工程实践
  • 2026诚信入境旅游服务标杆名录:大陆居民赴台旅游/探险旅游/研学旅行定制/私人高端旅游定制/考古旅游/自驾游/选择指南 - 优质品牌商家
  • 2026中水处理设备标杆名录:安徽污水处理设备厂家/工业废水处理设备/废水处理处理设备/气浮机一体化污水处理设备/选择指南 - 优质品牌商家
  • VM图像处理(1、图像二值化和图像滤波,Sobel提取过程)
  • 企业境外投资备案ODI常见问题解答:深圳境外投资备案ODI/美国公司注册/越南公司注册/马达加斯加公司注册/上海境外投资备案ODI/选择指南 - 优质品牌商家
  • 时间序列预测模型选型:构建高效决策矩阵
  • TinyAGI:多智能体协作平台,打造你的24/7 AI数字团队
  • 欧陆平台邀请码的正确填写步骤!娱乐使用
  • 【11】ViT论文解析:图像为什么也能像句子交给Transformer
  • 海投60份简历,0面试,我是不是真的很差?
  • PostgreSQL 17+ 关键基础监控指标详解
  • 基于Python与Playwright的闲鱼商品监控助手:自动化抓取与实时通知实现
  • 深度学习数据缩放:原理、方法与实践指南
  • 【仅限首批200家示范农场】:MCP 2026农业物联网对接“免调试”配置包泄露——含国密SM4加密模板与北斗授时同步策略
  • BERT文本分割-中文-通用领域部署教程:支持批量文本处理功能
  • 移动端UI自动化测试新范式:AUITestAgent白盒代理实战解析
  • 07华夏之光永存:盘古大模型开源登顶世界顶级——矿山/气象/电网行业模型全参数开源与垂直登顶方案(第七篇)
  • Cincoze DS-1400工业嵌入式计算机解析与应用
  • AppAgent:基于大语言模型的纯视觉手机自动化智能体实践
  • 深度神经网络训练五大核心难题与实战解决方案
  • Numba-SciPy:打破Python高性能计算壁垒,无缝集成科学计算库
  • NVIDIA GDN:云游戏与图形渲染技术解析
  • OpenOmniBot:端侧AI智能体实现Android自动化操作全解析
  • 终极跨平台MSG邮件查看器:5个理由让你告别Outlook依赖
  • 暗剑出鞘:3亿苹果设备沦陷背后,移动安全防线的全面崩塌
  • Windows蓝牙图表突然不见了怎么办
  • RISC-V架构MIPS P8700处理器在汽车电子的应用与优化