2024/02/28

news2024/11/16 13:57:08

 绘制思维导图

 将今天的模拟面试内容进行整合并上传作业

1、什么是回调函数?

回调函数是一种作为参数传递给其他函数的函数,在 C 语言中,函数指针允许我们将函数作为参数传递给其他函数,从而实现回调函数的功能,例如线程的创建函数。

2、结构体与共用体的区别

  1. 结构体(struct)

    • 结构体是一种用户自定义的数据类型,允许将不同类型的数据组合在一起,形成一个结构体变量。
    • 结构体中的各个成员在内存中是依次排列的,可以同时存储多种不同类型的数据。
    • 结构体的成员占用独立的内存空间,结构体变量的大小等于其所有成员占用空间之和。
    • 结构体的成员可以被分别访问和操作,通过.操作符来访问结构体的各个成员。
  2. 共用体(union)

    • 共用体也是一种用户自定义的数据类型,与结构体类似,但在内存中的结构不同。
    • 共用体允许在同一块内存空间中存储不同类型的数据,但同一时刻只能存储其中的一个成员。
    • 共用体的所有成员共享同一块内存空间,大小等于最大的成员所占用的空间。
    • 修改一个共用体的成员会影响其他成员的值,因为它们共享同一块内存空间。


3、赋值与初始化有什么不同?

  1. 赋值(Assignment)
    • 赋值是指将一个值或表达式赋给一个已经存在的变量。
    • 赋值操作用于更新或修改已经存在的变量的值。
    • 赋值操作使用赋值操作符(=)来将右侧的值赋给左侧的变量。
    • 赋值操作可以在变量声明后进行,用于改变变量的当前值。
  2. 初始化(Initialization)
    • 初始化是指在创建变量时给变量一个初始值。
    • 初始化操作在变量声明时进行。
    • 初始化可以保证变量在创建时拥有一个明确定义的初始值。
    • 不同的编程语言对变量的初始化要求可能不同,有些语言要求所有变量在使用前必须进行初始化。

4、局部变量和全局变量能否重名?

        虽然局部变量和全局变量可以具有相同的名称,但应谨慎使用,避免潜在的混淆和错误,并根据需要选择更具描述性的变量名称以提高代码的可读性和可维护性。

5、形参和实参有什么区别?
        形参是函数定义中声明的用于接受传递值的变量,而实参是在函数调用时提供给函数的具体数值或变量。形参和实参之间通过函数调用进行绑定,实参的值会传递给对应的形参,以便函数内部使用这些值进行操作。

        实参的表现形式: 常量、变量、表达式
        形参的表现形式: 只能是变量

6、数组与指针的区别是什么?

  1. 定义和用法:

    • 数组是一组相同类型的元素的集合,可以通过下标来访问数组中的元素,其大小在定义时就确定,且不可改变。
    • 指针是一个变量,存储着一个内存地址,可以指向其他变量或数据的内存地址,通过指针可以访问或修改其指向的数据。
  2. 内存分配:

    • 数组在内存中是连续存储的,相邻元素之间的地址是连续的,可以通过指定下标来访问数组元素。
    • 指针只是存储了一个地址,可以指向任意类型的数据,通过指针进行间接访问。
  3. 动态性:

    • 数组的大小在定义时就需要确定,并且在程序运行过程中无法改变。
    • 指针可以通过指向不同的变量或内存地址来实现灵活的数据访问,可以在运行时动态指向不同的数据。
  4. 数组名和指针:

    • 数组名是数组第一个元素的地址,可以直接使用数组名来表示整个数组,在大多数情况下会转换为指向数组第一个元素的指针。
    • 指针是一个变量,可用于存储地址,通过指针运算可以访问不同位置的内存。



7、void指针就是空指针吗? 他有什么作用?
     void 指针是一种可以指向任意类型数据的通用指针,而空指针代表不指向任何地址的特殊指针值。对于任何类型的指针来说,都可以将其赋值为 NULL来创建一个空指针。


8、简述快速排序的思想

  1. 选择基准值(Pivot)
    从数组中选择一个元素作为基准值。基准值的选择可以是数组中的任意一个元素,比如第一个元素、最后一个元素、中间元素或者随机元素。(不同的选择可能会影响算法性能)

  2. 分区操作(Partitioning)
    将数组进行分区,重新排列数组中的元素,使得所有比基准值小的元素排在基准值的前面,而所有比基准值大的元素排在基准值的后面。分区完成后,基准值就处于数组的一个中间位置,这个位置称为分区索引。

  3. 递归排序
    将基准值的左边和右边看作两个新的数组,分别对这两个子数组重复进行上述的选择基准值和分区操作。递归地进行这个过程,直到每个子数组只有一个元素或没有元素,此时数组便被排序完成。

9、什么是野指针,如何避免野指针?

  1. 未初始化的指针:声明了指针变量但没有明确地初始化。未初始化的指针可能指向任意内存地址,使用这样的指针可能导致不可预料的结果。

  2. 已释放的内存地址:指针指向的内存已经被释放(如调用 free 或 delete),但指针没有被置为 NULL。此时,指针仍然指向原来的内存地址,但该地址的内容已经不再属于程序,随时可能被分配给其他用途。

  3. 指针操作越界:访问数组时,指针操作后超出了本来它所指向的内存块界限,这种情况下指针也可能成为野指针。

  4. 指向栈内存的指针:函数返回时,其栈内存可能被释放或被其它函数调用重写,如果有指针指向这部分栈内存,那么指针也会变成野指针


10、网络7层体系结构

  1. 物理层

    • 物理层是网络体系结构的最底层,负责传输比特流并建立物理连接以在网络设备之间传输数据。
    • 物理层定义了电气、机械和功能特性来传输数据比特,如电压、频率、光强度等。
  2. 数据链路层

    • 数据链路层负责在直连的节点之间传输数据帧,并提供了错误检测和纠正。
    • 数据链路层可分为两个子层:逻辑链路控制子层(Logical Link Control, LLC)和介质访问控制子层(Media Access Control, MAC)。
  3. 网络层

    • 网络层负责在不同网络之间实现路由和转发功能,为数据包选定最佳路径,并将数据包从源节点传输到目的节点。
    • IP(Internet Protocol)是网络层最著名的协议。
  4. 传输层

    • 传输层提供端到端的通信和数据传输服务,确保数据包的可靠传输以及数据包的完整性。
    • 常用的传输层协议包括 TCP(传输控制协议)和 UDP(用户数据报协议)。
  5. 会话层

    • 会话层负责管理和协调应用程序之间的对话或会话,并为数据传输提供必要的同步。
    • 在通信的两端建立、管理和终止会话是会话层的主要职责。
  6. 表示层

    • 表示层负责数据的格式化、编解码和加密解密,以确保不同系统和应用程序之间能够正确地交换数据。
    • 表示层还处理数据的压缩、加密和字符集转换等任务。
  7. 应用层

    • 应用层是网络体系结构的最高层,为用户提供网络服务和支持应用程序的功能,如电子邮件、文件传输、Web 浏览等。
    • 应用层协议如 HTTP(超文本传输协议),FTP(文件传输协议)等在此层实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】插槽-slot

📝个人主页:五敷有你 🔥系列专栏:Vue ⛺️稳中求进,晒太阳 插槽 作用:让组件内部一些 结构 支持 自定义 插槽的分类: 默认插槽。具名插槽。 基础语法 组件内需要定制的结构部分&…

如何利用HubSpot出海营销CRM实现品牌建设与传播的有效管理?

利用HubSpot出海营销CRM优化客户互动和沟通可以通过以下方式实现: 个性化客户管理: 利用HubSpot的客户管理功能,集中管理客户信息,并根据客户的行为、偏好和历史数据等信息进行个性化分类和标记。这样可以更好地了解客户需求&am…

[CSS]文字旁边的竖线以及布局知识

场景:文字前面常见加竖线。 .center-title { 常见内容color: #FFF;font-family: "Source Han Sans CN";font-size: 50px;font-style: normal;font-weight: 700;line-height: normal;position: relative; 要定位left: 16px; 这里是想拉开间距margin-b…

力扣-跳跃游戏

问题 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 解答 class Solu…

CUMT---图像处理与视觉感知---期末复习重点

文章目录 一、概述 本篇文章会随课程的进行持续更新中! 一、概述 1. 图像的概念及分类。  图像是用各种观测系统以不同形式和手段观测客观世界而获得的、可以直接或间接作用于人的视觉系统而产生的视知觉实体。  图像分为模拟图像和数字图像:(1) 模拟图…

开源的 Python 数据分析库Pandas 简介

阅读本文之前请参阅-----如何系统的自学python Pandas 是一个开源的 Python 数据分析库,它提供了高性能、易用的数据结构和数据分析工具。Pandas 特别适合处理表格数据,例如时间序列数据、异构数据等。以下是对 Pandas 的简明扼要的介绍,包括…

基于React, Redux实现的俄罗斯方块游戏及源码

分享一个俄罗斯方块游戏游戏框架使用的是 React Redux,其中再加入了 Immutable,用它的实例来做来Redux的state。(有关React和Redux的介绍可以看 安装 npm install运行 npm start浏览自动打开 http://127.0.0.1:8080/ 打包编译 npm run …

Vue源码系列讲解——生命周期篇【七】(模板编译阶段)

目录 1. 前言 2. 模板编译阶段分析 2.1 两种$mount方法对比 2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段,我们知道,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志…

mongoDB 优化(1)索引

1、创建复合索引(多字段) db.collection_test1.createIndex({deletedVersion: 1,param: 1,qrYearMonth: 1},{name: "deletedVersion_1_param_1_qrYearMonth_1",background: true} ); 2、新增索引前: 执行查询: mb.r…

第3部分 原理篇2去中心化数字身份标识符(DID)(4)

3.2.3. DID解析 3.2.3.1. DID解析参与方 图3-5 DID 解析过程 本聪老师:我们之前提到过,DID 解析过程是将 DID 转换为对应的 DID 文档。这样做的目的是验证 DID 所代表的主体的身份。那么解析过程会涉及哪些概念呢?我们看图3-,DI…

uniapp 微信小程序使用高德地图Vue3不兼容Vue2问题

1. uniapp 微信小程序使用高德地图Vue3不兼容Vue2问题 1.1. 问题 uniapp Vue3项目引用高德地图报错 import amapPlugin from ‘…/…/…/js_sdk/js_amap/amap-wx.130’; "default" is not exported by "../../../MyProject/Base/Szy/js_sdk/js_amap/amap-wx.1…

springboot+vue网站开发-后端管理框架-vue-admin-template

为了方便国内用户下载,我把自己的百度网盘分享给大家一份地址,可以去下载。 如果你有上网盒子软件,那就自己去下载,很小。不到1MB. 链接:https://pan.baidu.com/s/15LJ2MoSWToFGFp28VaxBeQ?pwdbaby 提取码&#xff…

C++之queue和dqueue

1、queue queue(队列),一种数据结构,可以让某些数据结构的操作变得简单。队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出…

【MATLAB源码-第150期】基于matlab的开普勒优化算法(KOA)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 开普勒优化算法(Kepler Optimization Algorithm, KOA)是一个虚构的、灵感来自天文学的优化算法,它借鉴了开普勒行星运动定律的概念来设计。在这个构想中,算法模仿行星围绕太阳的…

图论(算法竞赛、蓝桥杯)--Dijkstra算法最短路

1、B站视频链接&#xff1a;D02 最短路 Dijkstra 算法_哔哩哔哩_bilibili 题目链接&#xff1a;【模板】单源最短路径&#xff08;弱化版&#xff09; - 洛谷 #include <bits/stdc.h> using namespace std; #define INF 2147483647 int n,m,s,a,b,c; const int N100010…

Spring Boot项目中如何上传头像?

在我们常见的各大App中&#xff0c;或多或少我们都见过上传头像的功能吧&#xff1f;&#xff1f; 但是在Spring Boot项目中如何上传头像呢&#xff1f; 上传头像主要用到RequestPart注解 来看一下小编的代码吧&#xff01; RestController RequestMapping("/param"…

ONLYOFFICE桌面编辑器v8.0完整指南:安装、特点与新增功能

文章目录 摘要引言安装主界面可填写的 PDF 表单双向文本支持电子表格中的新增功能其他改进与Moodle集成用密码保护PDF文件从“开始”菜单快速创建文档本地界面主题安装免费的 ONLYOFFICE桌面编辑器 总结 摘要 本文介绍了ONLYOFFICE桌面编辑器v8.0的安装、主界面特点以及新增功…

R语言实现分位数回归和二次分位数回归

大家好&#xff0c;我是带我去滑雪&#xff01;新的一年&#xff0c;新的气象&#xff0c;在接下来的日子里我将继续和各位小伙伴们分享我在科研道路上&#xff0c;学习的一些知识&#xff01; 分位数回归和二次分位数回归是统计学中用于分析因变量与自变量之间关系的方法&…

【InternLM 实战营笔记】浦语大模型趣味 Demo

大模型及 InternLM 模型简介 1.1 什么是大模型&#xff1f; 大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。这些模型利用大量数据进行训练&#xff0c;并且拥有数十亿甚至数千亿个参数。大模型的出现和发展得益于增长的数据量、…

s-table和columns初始化不完整,造成table文件的filter报错

问题 顺藤摸瓜找errorHandler.js文件 发现文件并没有什么问题 顺藤摸瓜找index.vue文件 首先找到报错的filter&#xff0c;发现与columnsSetting相关 找到columnsSetting发现等于columns 返回自己使用S-table组件的地方&#xff0c;发现columns初始化时仅初始化为ref()未表明…