2024.2.28 网络

思维导图

整理面试题

1、什么是回调函数

答:将函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

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

答:结构体的每个成员都会分配内存,大小又各个成员的内存之和但要满足字节对齐原则

共用体的内存以占字节数最大的成员为主

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

答:初始化是从无到有的过程,先分配空间,然后再填充数据;赋值是对己有的对象进行操作。
对于基本数据类型,二者是没有任何区别,对于非基本数据类型,在写法与效率上有许多不同。

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

答:能,局部会屏蔽全局。要用全局变量,需要使用"::",局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体

5、形参和实参有什么区别

答:形参(Formal Parameter)是函数定义时声明的参数,它是函数内部的局部变量。形参在函数定义时指定了参数的类型和名称,用于接收函数调用时传递的实参的值。

实参(Actual Argument)是函数调用时传递给函数的值或变量。实参可以是常量、变量、表达式或者其他函数的返回值。实参的值会被传递给对应的形参,从而在函数内部进行处理。

形参和实参之间的区别主要有以下几点:

1>定义位置:形参是在函数定义时声明的,位于函数的参数列表中;实参是在函数调用时传递的,位于函数名后面的括号中。
2>数据类型:形参可以指定具体的数据类型,用于接收相应类型的实参;实参可以是任意合法的表达式或变量。
3>值传递:实参的值会被传递给对应的形参,形成一次值传递。在函数内部对形参进行修改不会影响到实参的值。

4>作用范围:形参只在函数内部有效,超出函数范围后就无法访问;实参在函数调用时生效,可以在函数内部使用。

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

答:指针的大小是固定的,数组的大小是根据申请时数据类型和元素个数决定的

数组名表示的是首元素地址,从功能上等同于一个地址,数组是构造数据类型,指针是指针类型

7、void指针就是空指针吗?它有什么作用?

答:空指针是(void*)0,void指针是万能指针,可以执行任意类型的地址

void的指针不能直接解引用,必须先转换为具体的指针后再使用

8、简述快速排序的思想

答:快速排序是一种常用的排序算法,它的基思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列的目的。

具体的快速排序算法步骤如下:

1.>选择一个基准元素(通常选择第一个元素)。
2.>将序列中所有比基准元素小的元素移到基准元素的左边,将序列中所有比基准元素大的元素移到基准元素的右边。
3.>对基准元素的左右两个子序列重复步骤1和步骤2,直到每个子序列只有一个元素。

快速排序的关键在于划分操作,即如何将序列中的元素按照基准元素进行划分。常用的划分方法是使用双指针法,即设置一个左指针和一个右指针,左指针从序列的左边开始向右移动,右指针从序列的右边开始向左移动,当左指针指向的元素大于基准元素且右指针指向的元素小于基准元素时,交换左右指针指向的元素,直到左指针和右指针相遇,此时将基准元素与左指针指向的元素进行交换。

快速排序的时间复杂度为O(nlogn),其中n为待排序序列的长度。它是一种原地排序算法,不需要额外的存储空间。

9、什么是野指针?怎么避免野指针?

答:野指针即非法访问

①未初始化的指针②释放堆区空间后,指针没有指向NULL③越界访问数组的指针④指向一个空间后,空间被释放的指针

避免野指针:①初始化指针②防止指针越界访问数组③防止指针指向一个被释放的空间④使用指针之前检查有效性

10、网络7层体系结构

答:①物理层②数据链路层③网络层④传输层⑤会话层⑥表示层⑦应用层

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么会对猫毛过敏?如何缓解?浮毛克星—宠物空气净化器推荐

猫咪过敏通常是因为它们身上的Fel d1蛋白质导致的,这些蛋白质附着在猫咪的皮屑上。猫咪舔毛的过程会带出这些蛋白质,一旦接触就可能引发过敏症状,比如打喷嚏等。因此,减少空气中的浮毛数量有助于减轻过敏现象。猫用空气净化器可以…

HarmonyOS开发云工程与开发云函数

创建函数 您可直接在DevEco Studio创建函数、编写函数业务代码、为函数配置调用触发器。 1.右击“cloudfunctions”目录,选择“New > Cloud Function”。 2.输入函数名称后,点击“OK”。 函数名称仅支持小写英文字母、数字、中划线(-&a…

rtthread stm32h743的使用(三)uart串口设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图: 1.建立新工程,选择相应的芯片型号及debug引脚及调试器 2.打开cubemux,设置外部时钟及串口外设…

大数据分布式计算工具Spark实战讲解(数据输入实战)

Python数据容器转RDD对象 PySpark支持通过SparkContext对象的parallelize成员方法,将: - list - tuple - set - dict - str 转换为PySpark的RDD对象 注意: •字符串会被拆分出1个个的字符,存入RDD对象 •字典仅有key会被存入…

【饮食】如何有效的补充维生素,矿物质?学习笔记(附膳食营养素参考摄入量DRIs)

程序员养生指南之 【饮食】如何有效的补充维生素,矿物质?学习笔记(附膳食营养素参考摄入量DRIs) 文章目录 一、维生素补充1、需要补充维生素的情况2、食补:缺啥补啥3、补充剂(无脑吃) 二、膳食营…

面试笔记系列八之JVM基础知识点整理及常见面试题

类实例化加载顺序 加载:当程序访问某个类时,JVM会首先检查该类是否已经加载到内存中。如果尚未加载,则会进行加载操作。加载操作将类的字节码文件加载到内存,并为其创建一个Class对象。 连接(验证、准备、解析&#x…

【MySQL面试复习】了解过索引吗?(索引的底层原理)/B 树和B+树的区别是什么?

系列文章目录 在MySQL中,如何定位慢查询? 发现了某个SQL语句执行很慢,如何进行分析? 系列文章目录了解过索引吗?(索引的底层原理)B 树和B树的区别是什么? 了解过索引吗?(索引的底层原理) 如果没…

行为树入门:BehaviorTree.CPP Groot2练习(叶子节点)(2)

以《行为树BehaviorTree学习记录1_基本概念》练习。 1 SequenceNode顺序控制节点 代码下载 git clone https://gitee.com/Luweizhiyuan2020/ros2_bt.git例程 1.1 sequence 顺序执行 下载版本SequenceNode1。 1.2 ReactiveSequence 异步执行 注意: ①only a…

Ruoyi框架上传文件

axios资料:axios中文文档|axios中文网 | axios axiosjson 默认情况下,axios将JavaScript对象序列化为JSON。 submit(data) {if (data && this.definitionId) {// 启动流程并将表单数据加入流程变量startProcess(this.definitionId, JSON.string…

【深度学习笔记】5_2 填充和步骤

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 5.2 填充和步幅 在上一节的例子里,我们使用高和宽为3的输入与高和宽为2的卷积核得到高和宽为2的输出。一般来说&#xff0…

Python中的os库

一.OS库简介 OS是Operating System的简写,即操作系统。 OS库是一个操作系统接口模块,提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1:os.getcwd() 作用:返回当前工作目录,结果是…

Vue3学习——路由prop配置、replace

写法一 在路由中可直接写prop: true&#xff0c;即可在页面中defineProps使用 相当于&#xff08;<Detail id“1” name“2” />&#xff09;,但只能是params {path: /service,name: 服务,component: () > import(../views/Service/index)&#xff0c;props: true}…

蓝桥杯前端Web赛道-寻找小狼人

蓝桥杯前端Web赛道-寻找小狼人 题目链接&#xff1a;0寻找小狼人 - 蓝桥云课 (lanqiao.cn) 题目要求&#xff1a; 其实通过题目要求以及题目中提供的gif可知&#xff0c;该题就是需要我们手动写出能够代替filter函数的函数 我们先分析题目给出的代码&#xff1a; let newcar…

Linux:Ansible的常用模块

模块帮助 ansible-doc -l 列出ansible的模块 ansible-doc 模块名称 # 查看指定模块的教程 ansible-doc command 查看command模块的教程 退出教程时候建议不要使用ctrlc 停止&#xff0c;某些shell工具会出现错误 command ansible默认的模块,执行命令&#xff0c;注意&#x…

单片机复位按键电路、唤醒按键电路

目录 单片机复位按键 外部手动复位 单片机复位按键电路 复位按键电路1 复位按键电路2 单片机唤醒按键 单片机唤醒按键电路 单片机复位按键 单片机复位&#xff1a;简单来说&#xff0c;复位引脚就是有复位信号&#xff0c;就是从头开始执行程序 本质&#xff1a;就是靠…

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合?

开源大模型LLM大爆发&#xff0c;数据竞赛已开启&#xff01;如何使用FuseLLM实现大语言模型的知识融合&#xff1f; 现在大多数人都知道LLM是什么&#xff0c;以及可以做什么。 人们讨论着它的优缺点&#xff0c;畅想着它的未来&#xff0c; 向往着真正的AGI&#xff0c;又有…

NOIP 2008 普及组初赛试题及解析

NOIP 2008 普及组初赛试题及解析 一. 单项选择题 &#xff08;共20题&#xff0c;每题1.5分&#xff0c;共计30分。每题有且仅有一个正确答案.&#xff09;。二. 问题求解&#xff08;共2题&#xff0c;每题5分&#xff0c;共计10分&#xff09;三. 阅读程序写结果&#xff08;…

【JavaScript】手写 Promise(Promise\A+测试)

手写Promise-Promise\A测试 接下来咱们来测试一下手写Promise的代码能否通过Promise\A测试 Promise\A规范: Promise\A是社区推出的规范,其实最早Promise也是社区推出并实现的,旨在规范Promise的实现,里面约定了: 状态必须是:pending,fulfilled,rejectedthen方法的详细实现细…

ElasticSearch之suggester API

写在前面 当我们在使用搜索引擎进行的查询到时候&#xff0c;如果是输入错误的话&#xff0c;搜索引擎会给出一些搜索建议&#xff0c;如下&#xff1a; 在es中也提供了类似的功能&#xff0c;叫做suggester API。 1&#xff1a;原理和种类 原理是将查询的信息分为很多个词…

微服务Springcloud智慧工地APP源码 AI人工智能识别 支持多工地使用

目录 一、现状描述 二、行业难点 APP端功能 一、项目人员 二、视频监控 三、危大工程 四、绿色施工 五、安全隐患 AI智能识别 环境监测 实名制管理 智慧监测 智慧工地全套解决方案 一、现状描述 建筑工程建设具有明显的生产规模大宗性与生产场所固定性的特点。建…