当前位置: 首页 > 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…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...