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

成都精灵云初试

    最近参加了成都精灵云的笔试与面试,岗位是c++工程师。后面自己复盘了过程,初试部分总结如下,希望能对各位相进该公司以及面试C++工程师的同学提供一些参考。这也是博主第一次参加面试,很多东西都还没准备,很多答得不好,所以显得有些问题很突兀。
    后续也会陆续分享各公司的面试和笔试经验在该专栏,想看的可以关注一下博主!

正文开始

    首先是做自我介绍,个人觉得尽可能讲和找工作有关,展现自己能力的内容即可。

    下面是问答环节(前方高能!!!):

Q:解释一下static关键字
A:static用来控制变量的存储方式和可见性,static函数,仅该文件可见;static全局变量,仅该文件可见;static局部变量,改变该局部变量的生存期

    更多关于static原理可见博客 static关键字详解

Q:static定义的全局变量(为什么问这题是因为上面没答到仅该文件可见)
A:表明这是一个静态全局变量,使该变量仅在这个源文件中可用

Q:解释一下const关键字
A:用const修饰,意味着该变量的数据只能被访问,而不能被修改,意味着“只读”

Q:const修饰指针有几种,分别是什么
A:有三种,const修饰指针——常量指针;const修饰常量——指针常量;const既修饰指针又修饰常量

Q:const修饰成员变量和成员函数
A:const修饰的成员变量相当于该变量是一个常量,所以只能初始化列表上的初始化
const修饰的成员函数,事实上修饰的是成员函数隐藏的this指针,表示该成员函数不能对类的成员变量修饰,所以const不可以修饰构造函数,析构函数和赋值运算重载符

Q:解释一下什么是内联函数
A:为了消除函数调用的时空开销,c++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开,这种在函数调用处直接嵌入函数体的函数称为内联函数
Q:追问——调用函数会有什么开销
A:我在回答函数调用的过程来解释时空开销,于是HR直接问我下一个问题

Q:简述一下函数调用过程
A:将当前运行地址压入栈中;
  将参数压入栈中,如果参数较少的话会直接存到寄存器中;
  跳转到目标函数地址;
  执行函数体;
  销毁局部变量和函数形参;
  弹出调用者的运行地址;
  跳转回调用方;

Q:程序调用完是如何跳回调用方的
A:函数的调用和返回是通过调用栈来管理的,每当调用一个函数,程序会将当前函数的上下文全部压入调用栈中,然后开始执行被调用的函数,当被调用的函数执行完毕并准备返回时,程序会从调用栈中弹出该函数的上下文,并将控制权返回给调用方
在底层中使用的是程序计数器PC,储存当前正在执行的指令地址,当函数被调用时,PC的值会被保存到调用栈中的函数上下文中,当函数返回时,程序计数器的值将从调用栈中的函数上下文中回复,以便程序继续执行调用方函数的下一条指令

Q:解释一下SP指针(为什么问这个,是因为我把PC指针记成SP指针了,搞混了,啊啊啊啊啊啊,好尴尬)
A:SP指针是堆栈指针,用于出栈和入栈操作

Q:malloc和new的区别
A:malloc是函数,而new是关键字;malloc不会调用构造函数,new会调用构造函数;malloc是在堆区动态分配内存,new是在自由存储区动态分配内存;new会严格返回对象类型指针,malloc返回的是void指针,需要强制转换;new失败会抛出bac_alloc异常,malloc会返回null;new会根据对象类型自动分配大小,而malloc需要指定开辟空间大小

    具体还有区别可以详见 细说new与malloc的区别

Q:如果用malloc分配了一个地址,那么地址上的值为多少,如果是new的呢?
A:malloc函数申请的空间在没有使用前,空间里面存放的是随机值
new的话后面不加(),则不会被初始化,是随机值,如果加了(),其值为0

Q:重载函数和虚函数的区别
A:重载函数只要求函数有相同的函数名,并且重载函数是在相同作用域内定义的名字相同的不同函数;而虚函数不仅要求函数名相同,而且要求函数的签名,返回类型也相同,也就是说函数原型必须完全相同,而且虚函数特性必定是体现在基类和派生类的类层次结构中。
  重载函数可以是成员函数或友元函数,虚函数只能是非静态成员函数
  构造函数可以重载,析构函数不可以重载;构造函数不能被定义为虚函数,析构函数能定义为虚函数
  重载函数的调用是以传递参数序列的差别作为调用不同函数的依据,而虚函数是根据对象的不同区调用不同类的函数
  重载函数在编译时表现出多态性,是静态联编,虚函数则在运行时表现出多态性,是动态联编

Q:讲一下虚函数和虚函数表的关系
A:多态是由虚函数实现的,虚函数主要是通过虚函数表来实现的。在这个表中,主要是一个类的虚函数的地址表,这张表解决了集成覆盖的问题,在有虚函数的实例中,这张表被分配在这个实例的内存中,所以当我们用父类指针来操作一个子类时,这张虚函数表就像地图一样指明实际所应该调用的函数

Q:讲一下链式结构和顺序结构的优缺点
A:顺序存储结构是一段连续的存储单元,依次存储线性表的数据元素;链式存储结构是一组任意的存储单元,存放线性表的元素
线性表查找很方便,但插入删除较为麻烦
链式结构插入删除很方便,但查找较为麻烦

Q:如何让链式结构也方便查找
A:维护一个额外索引数据结构,每个索引节点指向链表中的一个元素,这样就可以在索引结构中快速查找,再根据链表中的指针找到具体的元素

Q:进程之间如何通信
A:消息传递(管道,FIFO,posix和消息队列)
 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)
 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)
 过程调用

Q:如何创建一个管道
A:windows中使用函数CreatePipe(),Unix/Linux中使用pipe()

Q:解释一下什么是智能指针
A:智能指针是帮忙管理动态分配的内存,帮助我们自动释放new出来的内存,避免内存泄露的

Q:解释一下tcp协议的三次握手,四次握手
A:tcp的三次握手是为了建立可靠的连接,首先客户端向服务器发送请求,客户端切换到发送状态,服务器处于侦听状态,侦听到请求后,服务器返回一个确认,服务器变为接收状态,客户端收到确认后返回一个确认给服务器,表示自己收到服务器返回信息,客户端切换到连接状态,服务器收到信息后正式建立连接。
  tcp的四次握手是为了确保客户端和服务器端断开连接请求和数据传输完成:首先客户端发送断开连接请求,服务器收到后发送确认给客户端,客户端收到确认后进入半连接状态,表示只能收不能发。服务器传完信息就向客户端发送断开请求,客户端收到后返回一个确认,服务器接收后断开连接请求,客户端等待2个最大报文生存时间后断开连接。
  不让服务器在传输信息的同时返回确认连接的原因:TCP有超时重传机制,时间较短,等待服务器传输完,估计客户端会重发很多个。

相关文章:

成都精灵云初试

最近参加了成都精灵云的笔试与面试,岗位是c工程师。后面自己复盘了过程,初试部分总结如下,希望能对各位相进该公司以及面试C工程师的同学提供一些参考。这也是博主第一次参加面试,很多东西都还没准备,很多答得不好&…...

css relative 和absolute布局

1、relative和absolute内部的元素都是相对于父容器,若父容器没有指定为relative,则默认为整个文档视图空间,absolute可以重叠元素,relative则不行。relative意味着元素的任意属性如left和right都是相对于其他元素的。absolute则相…...

更健康舒适更科技的照明体验!书客SKY护眼台灯SUKER L1上手体验

低价又好用的护眼台灯是多数人的需求,很多人只追求功能性护眼台灯,显色高、无频闪、无蓝光等基础需求。但是在较低价格中很难面面俱到,然而刚发布的SUKER书客L1护眼台灯却是一款不可多得的性价比护眼台灯,拥有高品质光源&#xff…...

经管博士科研基础【19】齐次线性方程组

1. 线性方程组 2. 非线性方程组 非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等。求解此类方程往往很难得到精确解,经常需要求近似解问题。相应的求近似解的方法也逐渐得到大家的重视。 3. 线…...

django报错解决 Forbidden (403) CSRF verification failed. Request aborted.

django报错解决 Forbidden (403) CSRF verification failed. Request aborted. 报错内容 Forbidden (403) CSRF verification failed. Request aborted.Help Reason given for failure:Origin checking failed - https://active-mantis-distinct.ngrok-free.app does not mat…...

k8s-实战——yapi平台部署

文章目录 k8s 部署yapi平台前言准备工作构建yapi镜像Dockerfileentrypoint.shbuild.sh源码下载构建镜像启动mongo数据库新建nfs服务mongo创建mongo服务初始化数据启动yapi服务创建yapi服务查看密码访问地址k8s 部署yapi平台 前言 部署yapi平台需要mo...

Excel VSTO开发5 -Excel对象结构

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 5 Excel对象结构 Excel提供了几个比较重要的对象: Application、Workbooks、Workbook、Worksheets、Worksheet 为了便…...

Javafx集成sqlite数据库

什么是SQLite SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite在使用前不需要安装设置,不需要进程来启动、停止或配置,而其他大多数SQL数据库引擎是作为一个单独的服务器进程,被程序使用某种内部进程通信(典型…...

react-native实现 TextInput 键盘显示搜索按钮并触发回调

<TextInput returnKeyType"search"returnKeyLabel"搜索"onSubmitEditing{e > {toSearch(keyword);}} /><SearchBarref{serachBarEl}placeholder"请输入"onChangeText{handleChangeSearch}value{search}onSubmitEditing{handleSearch…...

人大金仓分析型数据库备份和恢复(五)

增量备份 gpbackup和gprestore工具支持创建追加优化表的增量备份以及从增量备份还原。 只有表被更改时&#xff0c;增量备份才会备份所有指定的堆表和追加优化的表&#xff08;包括追加优化的&#xff0c;面向列的表&#xff09;。 例如&#xff0c;如果追加优化表的行已更改&a…...

lenovo联想笔记本ThinkPad P16V Gen 1(21FC,21FD)原装出厂Win11系统

原厂W11系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 链接&#xff1a;https://pan.baidu.com/s/17dTExDSz-EDN4Qd-PZGJuw?pwdrgl3 提取码&#xff1a;rgl3 所需要工具&#xff1a;32G或以上的U盘 文件格式&#xff1a;ISO 文件大小…...

Django实现音乐网站 ⒃

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是歌手详情页-专辑列表、专辑详情-单曲列表开发实现内容。 目录 歌手详情-专辑列表 路由设置 跳转设置 视图方法 模板内容 专辑详情-单曲列表 设置路由 视图处理并返回 模板渲染 分页优化 引入错误类型库…...

【开发问题系列】CSV转Excel

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...

mysql物理备份步骤

原库10.153.88.5&#xff0c;新建数据库实例10.153.88.6&#xff0c;注意/etc/my.cnf配置和88.5一致&#xff0c;测试目的是通过copy数据文件到88.6来恢复数据库。 在数据库10.153.88.5打包数据文件&#xff1a; [mysqlt3-dtpoc-dtpoc-web04 mysql]$ cd /testdata/mysql [mys…...

react使用hook封装一个tab组件

目录 react使用hook封装一个tab组件Tabbar.jsx使用组件效果 react使用hook封装一个tab组件 Tabbar.jsx import PropsTypes from "prop-types"; import React, { useEffect, useState } from react; export default function Tabbar(props) {const { tabData , cur…...

java详细安装教程(供参考)一一java(jdk)安装

一、java历史简介 1991 年Sun公司的James Gosling等人开始开发名称为 Oak &#xff08;橡树&#xff09;的语言。希望用于控制嵌入在有线电视交换盒、PDA等的微处理器&#xff0c; 1994年将Oak语言更名为Java 1998年JDK1.2时&#xff0c;更名为Java 2 Platform 分为标准版J…...

C++函数内联详解

本文旨在讲解C中的函数内联相关知识&#xff0c;读完这篇文章&#xff0c;希望读者们会对函数内联有更深一步的认识&#xff01; 内联函数的定义 在计算机科学中&#xff0c; 内联函数 &#xff08;有时称作 在线函数 或 编译时期展开函数 &#xff09;是一种编程语言结构&…...

Revit SDK 介绍:NewForm 新建体量

前言 这个例子介绍如何新建体量。 内容 图形生成效果。 用 Extrusion 创建体量 // 创建一个轮廓 ReferenceArray ref_ar new ReferenceArray(); // 创建三条直线&#xff0c;并放入轮廓 Autodesk.Revit.DB.XYZ ptA new Autodesk.Revit.DB.XYZ(10, 10, 0); Autodesk.Rev…...

Ubuntu离线或在线安装Python解释器

这里以安装Python3.5.7为例。 首先进入官网&#xff0c;下载Python-3.5.7.tgz&#xff0c;或者使用以下命令下载&#xff08;需要联网&#xff09;&#xff1a; wget https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tgz下载完成后&#xff0c;使用以下命令进行解压缩…...

微信小程序隐私协议相关接口实际使用方式

<view wx:if"{{showPrivacy}}" class"privacy"><view class"popup"><view>隐私弹窗内容....</view><view bindtap"openPrivacyAgreement">点击查看隐私协议</view><button id"disagreeBt…...

OpenClaw+GLM-4.7-Flash:自动化代码审查与优化建议

OpenClawGLM-4.7-Flash&#xff1a;自动化代码审查与优化建议 1. 为什么需要自动化代码审查 作为一名长期与代码打交道的开发者&#xff0c;我深知代码审查的重要性&#xff0c;但传统的人工审查存在几个痛点&#xff1a;时间成本高、标准不统一、容易遗漏细节。特别是在个人项…...

如何快速搭建个人小说离线图书馆:fanqienovel-downloader完整使用指南

如何快速搭建个人小说离线图书馆&#xff1a;fanqienovel-downloader完整使用指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 厌倦了在线小说的网络限制和广告干扰&#xff1f;想要随时…...

BlueROV2进阶:巧用ArduSub参数配置实现多舵机协同控制

1. 从单舵机到多舵机协同的跨越 第一次用Pixhawk控制单个舵机转动时的兴奋感还记忆犹新&#xff0c;但当真正开始构建BlueROV2这样的水下机器人时&#xff0c;你会发现单一舵机控制远远不够。想象一下这样的场景&#xff1a;机械爪需要精准开合&#xff0c;云台要平稳转动&…...

海外项目实战:用uniapp+Google OAuth 2.0搞定H5/App的免后端登录(附完整源码)

海外项目实战&#xff1a;Uniapp与Google OAuth 2.0的无后端登录方案 在面向海外市场的移动应用开发中&#xff0c;用户登录体验直接影响产品的转化率和留存率。Google账号作为欧美地区最普及的数字身份凭证&#xff0c;其登录集成已成为出海应用的标配功能。本文将深入探讨如何…...

Python AI 工具不是越多越好!——3个被低估但日均调用量破50万的轻量级用例工具(附内部灰度测试报告)

第一章&#xff1a;Python AI 工具不是越多越好&#xff01;——轻量级用例工具的价值重估在AI工程实践中&#xff0c;开发者常陷入“工具堆砌陷阱”&#xff1a;为一个文本清洗任务引入 Transformers&#xff0c;为简单分类部署完整 FastAPI ONNX Runtime Redis 缓存栈。这种…...

想入行5G网络优化工程师?这6个求职陷阱你必须知道

5G网络优化工程师由于其入职门槛低&#xff0c;需求高&#xff0c;成为了不少想转行的人关注的岗位。 但对于刚入行的小白来说&#xff0c;求职路上往往布满陷阱。 作为一名行业接触过一些内幕的过来人&#xff0c;总结了6条找工作的核心建议&#xff0c;希望能帮大家少走弯路…...

如何智能检测微信单向好友?WechatRealFriends全方位解决方案

如何智能检测微信单向好友&#xff1f;WechatRealFriends全方位解决方案 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFrien…...

8位单片机中16位int型数据操作技巧

8位单片机中对16位int型数据的操作技巧1. 数据合并的需求背景在8位单片机开发中&#xff0c;经常需要处理16位数据。由于8位架构的限制&#xff0c;16位数据需要拆分为两个8位字节进行存储和传输。当需要将两个8位数据合并为一个16位数据时&#xff0c;开发者需要掌握高效可靠的…...

SYNBO AMA 回顾|当稳定币突破 3000 亿,一级的“钱”到底在往哪里流?

一、 聊了什么&#xff1a;背景与主题时间&#xff1a;2026 Mar 25 (Wed) 20:00 UTC8主题&#xff1a; Stablecoins Primary Market: The New Capital Stack Powering Global Payments in 2026在昨晚举行的一场围绕“稳定币、PayFi 与全球支付”的 AMA 中&#xff0c;SYNBO 与…...

ViGEmBus虚拟手柄驱动全栈技术指南:从内核原理到游戏控制革新

ViGEmBus虚拟手柄驱动全栈技术指南&#xff1a;从内核原理到游戏控制革新 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 一、认知虚拟手柄技术&#xff1a;…...