news 2026/5/1 21:10:47

C++高频面试题总结(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++高频面试题总结(一)

        面试知识点总结,整理自微软、Intel、Autodesk等公司面试题,涵盖C/C++基础、内存管理、面向对象、算法数据结构等核心内容。

1. 函数返回值(微软)

int func(x) {     int countx = 0;     while(x)     {         countx ++;         x = x&(x-1);     }     return countx; }

假定 `x = 9999`,返回值为 8。  
思路:将 x 转化为二进制,统计其中 1 的个数。

2. 什么是“引用”?使用引用要注意什么?

引用是某个目标变量的“别名”,对引用的操作与对变量直接操作效果完全相同。

注意事项:

  • 声明引用时必须初始化。
  • 引用一旦绑定,不能再作为其他变量的别名。
  • 引用本身不是数据类型,不占存储单元。
  • 不能建立数组的引用。

3. 将“引用”作为函数参数的特点

(1).传递引用与传递指针效果相同,形参成为实参的别名,操作直接作用于实参。
(2).不产生实参副本,效率高,节省空间,避免拷贝构造函数调用。
(3).相比指针,引用更清晰、易用,无需解引用操作。

4. 什么时候使用“常引用”?

        需要既利用引用提高效率,又保护数据不被函数修改时,使用 `const` 引用。
const 类型标识符 &引用名 = 目标变量名;

int a; const int &ra = a; ra = 1;   // 错误 a = 1;    // 正确


        临时对象是 `const` 类型,不能传递给非 `const` 引用参数。应尽量将引用参数定义为 `const`。

5. 将“引用”作为函数返回值的格式、好处与规则

格式:`类型标识符 &函数名(形参列表) { 函数体 }`

好处:不产生返回值的副本。

规则:
1. 不能返回局部变量的引用。
2. 不能返回函数内部 `new` 分配的内存的引用(易造成内存泄漏)。
3. 可以返回类成员的引用,最好为 `const`。
4. 流操作符 `<<`、`>>` 和赋值操作符 `=` 应返回引用以支持连续操作。
5. 四则运算符 `+-*/` 不能返回引用(需返回对象)。

6. “引用”与多态的关系

        引用是除指针外另一个可实现多态的手段:基类的引用可以指向派生类实例。

class B : public A { ... }; B b; A &ref = b;

7. “引用”与指针的区别

特性指针引用
本质存储地址的变量目标变量的别名
可读性较差,需解引用较好,直接操作
初始化可不初始化(野指针危险)必须初始化
重新绑定可以指向其他对象不可改变绑定

8. 什么时候需要“引用”?

(1).流操作符 `<<`、`>>` 的返回值
(2).赋值操作符 `=` 的返回值
(3).拷贝构造函数的参数
(4).赋值操作符 `=` 的参数
(5).其他推荐使用引用的场景

9. 结构与联合的区别

  • 结构:所有成员都存在,各成员存放地址不同,赋值互不影响。
  • 联合:所有成员共用一块地址空间,同一时刻只存放一个成员,对一个成员赋值会覆盖其他成员。

10. 联合相关题目输出

题 (a)

union {     int i;     char x[2]; } a; a.x[0] = 10; a.x[1] = 1; printf("%d", a.i);

输出:`266`(内存布局 `0x010A`,低位低地址)

题 (b)

union {     int
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 21:07:30

Meshtastic Python CLI 中通道 PSK 设置警告信息的终极解析指南

Meshtastic Python CLI 中通道 PSK 设置警告信息的终极解析指南 Meshtastic 是一个开源的、去中心化的无线通信平台&#xff0c;专为构建离线网状网络而设计。其 Python CLI 工具提供了强大的设备配置功能&#xff0c;其中通道 PSK&#xff08;预共享密钥&#xff09;设置是保…

作者头像 李华
网站建设 2026/5/1 21:02:31

基于MCP协议构建Gemini模型网关:统一AI模型调用的实践指南

1. 项目概述与核心价值 最近在折腾AI应用开发&#xff0c;特别是想把各种大模型的能力整合到自己的自动化流程里。相信很多开发者都遇到过类似的问题&#xff1a;手头有OpenAI的API&#xff0c;也想用上Google的Gemini&#xff0c;甚至还想接上本地部署的开源模型。每个模型都…

作者头像 李华
网站建设 2026/5/1 21:01:27

如何用Isomer创建独特3D图形:自定义Path和Shape类的完整指南

如何用Isomer创建独特3D图形&#xff1a;自定义Path和Shape类的完整指南 【免费下载链接】isomer Simple isometric graphics library for HTML5 canvas 项目地址: https://gitcode.com/gh_mirrors/is/isomer Isomer是一款轻量级的HTML5 Canvas等距图形库&#xff0c;通…

作者头像 李华
网站建设 2026/5/1 21:01:27

三步搞定!国家中小学智慧教育平台电子课本高效下载全攻略

三步搞定&#xff01;国家中小学智慧教育平台电子课本高效下载全攻略 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具&#xff0c;帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载&#xff0c;让您更方便地获取课本内容。 项目地…

作者头像 李华
网站建设 2026/5/1 21:01:26

终极Fabric API最佳实践:避免常见错误的10个专业技巧

终极Fabric API最佳实践&#xff1a;避免常见错误的10个专业技巧 【免费下载链接】fabric-api Essential hooks for modding with Fabric. 项目地址: https://gitcode.com/gh_mirrors/fabri/fabric-api Fabric API是Minecraft模组开发的核心框架&#xff0c;提供了丰富的…

作者头像 李华