2024.8.20

news2025/2/5 10:56:14

思维导图

C语言中指针数组和数组指针的区别

  数组指针本质上是一个指针变量,用于存储整个数组的起始地址,指针每偏移一个单位,内存就会偏移整个数组的容量的大小,一般用于二维数组,二维数组的数组名,本质上是一个数组指针常量

  本质上是一个数组,只是每个数据元素都是一个指针变量

结构体字节对齐

结构体中的每个成员,在分配内存时,要以数据类型对齐一次;所有成员分配内存结束后,整体也需要对齐一次;32位系统以 min(最大字节的成员,4) 对齐,64位系统以 min(最大字节的成员,8)对齐

TCP和UDP的区别

TCP ----> 稳定

提供面向连接的,可靠的数据传输服务;传输过程中,数据不会出错;TCP会给每个数据包编上编号,该编号称之为序列号,每个序列号都需要应答包应答,如果没有应答,则会将上面的包重复发送直到正确为止;数据传输效率低,耗费资源多;数据收发是不同步的,为了提高效率,TCP会将多个较小,并且发送间隔短的数据包,沾成一个包发送,该现象称为沾包现象

UDP ----> 快速

面向无连接的,不保证数据可靠的,尽最大努力传输的协议;传输过程中,数据是可能会出错的;数据传输效率高,实时性高;限制每次传输的数据大小,多出部分直接忽略删除;收发是同步的,不会沾包

同步通信和异步通信的区别

同步通信:发送和接收在同一时间进行,发送方需要等待响应(阻塞)

异步通信:发送和接收可以在不同时间进行,发送方不需要等待响应(非阻塞)

谈谈你对多线程的理解

 线程也称轻量版的进程,是进程的一个执行路径。

线程是任务调度的最小单位。

每个进程都至少有一个线程。

线程操作消耗内存较小,效率较高。

线程还有同步互斥机制:对于线程同步问题,有两个机制完成:无名信号量和条件变量;

                                        对于线程互斥问题,采用互斥锁来解决。

线程允许多并发执行,多个线程可以共用一个进程

多个线程释放资源时,可能会发生死锁

大小端的验证

将一个整数的指针或对象内容转成字符数组的方式来检查内存中字节的顺序

互斥锁相关问题

互斥锁本质上也是一个特殊的临界资源,该临界资源在同一时刻只能被一个线程所拥有,当一个线程试图去锁定被另一个线程锁定的互斥锁时,该线程会阻塞等待,直到拥有互斥锁的线程解锁了该互斥锁;在多线程编程中,死锁是一种情况,其中两个或多个线程被永久阻塞,因为每个线程都在等待其他线程释放它们需要的资源。

共享内存特点

共享内存表示的是多个进程共享一个外部的物理内存,效率比较高

共享内存具有时效性,存放到共享内存区域中的数据,如果不及时读取,下一次写入后,前面的数据会被覆盖

共享内存的操作不是一次性的,写入到共享内存中的数据,即使读取出去后,依然存在于共享内存,直到下一次被覆盖

讲一下C中的指针

指针是一种特殊的变量,它存储的是另一个变量的内存地址。指针提供了一种间接访问内存的方式,使得程序能够动态地操作数据

 指针有:指针数组,数组指针,指针函数,函数指针,野指针,空指针,指针和内存分配

gcc分步编译

预处理阶段:将预处理指令解析(例如条件编译的处理、头文件的展开等),删除注释

编译阶段:将程序进行语法分析和语义分析,中间代码优化,生成汇编程序

汇编阶段:将汇编程序编译生成目标程序(.o文件),是一个二进制程序

链接阶段:将多个目标程序与相关库(静态库或动态库)进行链接,生成可执行程序

说一下对套接字的理解

sfd = socket(); //创建一个用于连接的套接字文件描述符

bind(); //为服务器套接字绑定ip地址和端口号,为了让客户端额能够找到服务器

listen(); //将服务器套接字设置成被动监听状态,用于接收客户端的连接请求

newfd = accept(); //阻塞等待客户端的连接请求,如果有客户端发来连接请求,创建一个新的用于通信的套接字文件描述符

while(1) { send\recv\read\write; //数据收发工作 }

close(); //关闭套接字、关闭监听

HTTP协议和TCP协议和UDP协议之间的关系

HTTP是应用层协议,TCP是传输层协议,两者的联系是BS模型,HTTP需要TCP来传输其封装的数据,TCP也能保证HTTP相关的数据的完整和正确

IP地址和子网掩码如何决定 网卡所在的网段

IP地址&子网掩码

计算机网络中的OSI七层模型和TCP/IP四层体系结构

物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

网络接口层,网际层,传输层,应用层

数据结构中栈和队列的区别

栈和队列都是操作受限的线性表;

栈是先进后出的,队列是先进先出的;

栈是在栈顶进行插入和删除的,而队列实在队尾进行插入,队头进行删除的;

数据结构中顺序表和链表的区别

顺序表通常使用数组实现,链表通常使用若干个节点组成;

顺序表访问速度较快,链表访问速度较慢;

顺序表插入元素或删除元素需要移动大量元素,链表只需改变它的相邻节点指针就可以了;

顺序表通常在栈上分配内存,而链表在堆上分配内存;

顺序表实现相对简单,链表实现相对复杂;

TCP通信的3次握手和4次挥手

第一次握手:客户端向服务器发送一个SYN报文,并进入SYN_SENT状态,请求建立连接;

第二次握手:服务器收到请求后,想客户端发送一个SYN-ACK报文,,并进入SYN_RCVD状态,同意连接请求;

第三次握手:客户端收到后,想服务器发送AVK报文,此时连接成功。

第一次挥手:主动端向被动端发送FIN报文,进入FIN-WAIT_1状态;

第二次挥手:被动端收到后,发送ACK报文,进入CLOKSE_WAIT状态。主动方接收到ACK报文后进入FIN-WAIT_2状态。如果数据未发送完毕,则继续发送直到完毕;

第三次挥手:被动端向主动端发送FIN报文,进入LAST_ACK状态;

第四次挥手:主动端收到后,回复一个ACK报文,被动端收到后断开连接。

指针和指针变量的区别

指针是一种数据类型,而指针变量是这种类型的实例;

指针变量存储的是一个内存地址,而指针定义了指针变量可以存储哪一种指针类型的内存地址;

共享内存和消息队列的优缺点

共享内存: 

        优点:提供了最快的IPC之一,实施起来相对方便,访问速度快;

        缺点:需要使用额外的同步机制来避免竞态条件和数据不一致,不当的使用可能使内存泄漏。

消息队列:

        优点:提供了数据封装,每个消息都可以包含不同的数据和优先级;本身提供了同步机制,避免竞态条件;

        缺点:比共享内存更复杂;消息可能会延迟;对资源有限制

结构体中一个char 一个int 结构体占字节长度是多少

8个字节

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

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

相关文章

【可视化】封装滚动菜单列表组件

源码及源码分析 <template><!-- 滚动菜单的主要容器 --><div class"scrolling-menu"><!-- 如果headers数组有内容&#xff0c;就渲染表头 --><divclass"table-header"v-if"headers.length":style"{ backgroundC…

LLM向量嵌入知多少

向量嵌入是机器学习领域中一项引人入胜且极具实用性的技术。它们构成了众多自然语言处理&#xff08;NLP&#xff09;、推荐系统和搜索算法的基础。如果您曾经使用过推荐引擎、语音助手或语言翻译工具&#xff0c;那么您已经体验过嵌入技术的强大功能。 机器学习算法&#xff0…

如何为您的专用IP地址选择正确的IP SSL证书

随着互联网的不断发展&#xff0c;网站安全变得越来越重要。SSL证书不仅为网站提供了加密通道&#xff0c;还增强了用户对网站的信任感。对于那些使用专用IP地址的网站来说&#xff0c;选择合适的IP SSL证书至关重要。本文将为您详细介绍如何挑选最适合您网站需求的IP SSL证书。…

Cocos Creator2D游戏开发(14)---CocosCreator常用组件详解

Canvas RenderRoot2D 组件所在的节点是 2D 渲染组件数据收集的入口,而 Canvas&#xff08;画布&#xff09; 组件继承自 RenderRoot2D 组件&#xff0c;所以 Canvas 组件也是数据收集入口。所有 2D 渲染元素都必须作为 RenderRoot2D 的子节点才能被渲染。 Canvas还作为屏幕适配…

Web基础、http协议、源码编译构建LAMP

目录 一、DNS与域名 1.1域名概述 1.2域名小结 1.3DNS域名解析 1.4域名 二、网页的概念 1.网页的基本概念 三、web 1.1web概述 1.2渲染过程 1.3web1.0和web2.0 1.4静态页面和动态页面 四、http协议 1.http协议简介 2.cookie和session 2.1cookie 2.2session 3.c…

React学习笔记(一)——react基础

1. React 介绍 1.1 React是什么 React由Meta公司研发&#xff0c;是一个用于 构建Web和原生交互界面的库 1.2 React的优势 相较于传统基于DOM开发的优势&#xff1a; 组件化的开发方式不错的性能 相较于其它前端框架的优势&#xff1a; 丰富的生态跨平台支持 1.3 React的市场…

国内知名电器集团售后服务系统被黑!损失1.2亿!

两款软件入侵 近期&#xff0c;一款名为“A助手”的软件和另一款“B配置工具”被揭露存在严重的非法活动。 这两款软件被不法分子利用&#xff0c;并成功侵入了某知名企业的电器售后服务系统。通过技术手段&#xff0c;伪造了电器安装服务的工单&#xff0c;并以此骗取了大量的…

24年银行从业资格考试报名照规格要求

24年银行从业资格考试报名照规格要求 #银行从业 #银行从业资格证 #银行从业考试 #银行从业资格考试 #银行从业资格证报名照片 #银从

Unity 波函数坍缩算法随机地图生成

Unity 波函数坍缩算法随机地图生成 波函数波函数基本概念位置空间波函数动量空间波函数两种波函数之间的关系波函数的本征值和本征态波函数坍缩 熵是什么熵作为状态函数时间之箭 实现原理举个例子&#xff1a;2D迷宫地图生成 Unity 如何实现前期准备单元格代码瓦片地图代码波函…

使用亮数据爬虫工具解锁复杂爬虫场景

在当今数据驱动型时代&#xff0c;数据采集和分析能力算是个人和企业的核心竞争力。然而&#xff0c;手动采集数据耗时费力且效率低下&#xff0c;而且容易被网站封禁。 我之前使用过一个爬虫工具&#xff0c;亮数据&#xff08;Bright Data&#xff09; &#xff0c;是一款低…

PCIe学习笔记(25)

数据完整性 PCI Express的基本数据可靠性机制包含在数据链路层(data Link Layer)中&#xff0c;它使用32位的LCRC (CRC)码逐链路检测TLP中的错误&#xff0c;并采用逐链路重传机制进行错误恢复。TLP是一个数据和事务控制单元&#xff0c;由位于PCI Express域“边缘”的数据源(…

重大发现!看Apache与nginx工作模型,享web服务幸福人生

文章目录 文章相关连接如下&#xff1a; Web 服务基础介绍ApacheApache prefork 模型 Apache worker 模型Apache event模型 Nginx-高性能的 Web 服务端nginx源码安装平滑升级和回滚平滑升级步骤&#xff1a;回滚步骤 nginx启动文件 文章相关连接如下&#xff1a; 如果想更多了…

【GH】【EXCEL】P4: Chart

文章目录 data and chartdonut chart (radial chart)Radial Chart bar chartBar Chart line chartLine Chart Scatter ChartScatter Chart Surface ChartSurface Chart Chart DecoratorsChart Decorators Chart GraphicsChart Graphics data and chart donut chart (radial cha…

《面板变系数模型及 Stata 具体操作步骤》

目录 一、文献综述 二、理论原理 三、实证模型 四、稳健性检验 五、程序代码及解释 六、代码运行结果 一、文献综述 在经济和社会科学研究领域&#xff0c;面板数据模型因其能够同时考虑个体和时间维度的信息而被广泛应用。传统的面板数据模型通常假设系数是固定的&#…

1.初识redis

文章目录 1.认识redis1.1 mysql和redis 对比1.2分布式系统1.2.1单机架构与分布式架构1.2.2数据库分离(应用服务器和存储服务器分离)与负载均衡1.2.3负载均衡器1.2.4 数据库读写分离1.2.5 数据库服务器引入缓存1.2.6数据库分库分表1.2.7 引入微服务 2.常见概念解释2.1 应用(Appl…

GoModule

GOPATH 最早的就是GOPATH构建模式&#xff0c; go get下载的包都在path中的src目录下 src目录是源代码存放目录。 package mainimport ("net/http""github.com/gorilla/mux" )func main() {r : mux.NewRouter()r.HandleFunc("/hello", func(w h…

iptables流量走向图

关联教学 https://www.bilibili.com/video/BV1dw411J7Qk/?spm_id_from333.337.search-card.all.click

7.2 算法设计与分析

分治法&#xff08;考的概率较低&#xff09; 回溯法&#xff08;考的概率较低&#xff09; 动态规划法&#xff08;考的概率较高&#xff09; 1

第四届机电一体化、自动化与智能控制国际学术会议(MAIC 2024)

目录 大会官网 会议简介 组织机构 大会主席 程序委员会主席 主讲嘉宾 征稿主题 参会说明 大会官网 http://www.icmaic.org 会议简介 第四届机电一体化、自动化与智能控制国际学术会议&#xff08;MAIC 2024&#xff09;将于2024年9月27-29日在中国成都召开。MAIC 20…

高性能MySQL04_操作系统和硬件优化

1. 从软件本身和它运行的典型工作负载来看&#xff0c;MySQL通常也更适合运行在廉价硬件上 2. 基本资源 2.1. CPU 2.2. 内存 2.3. 磁盘 2.4. 瓶颈 2.5. 网络资源 3. CPU 3.1. 最常见的瓶颈是CPU耗尽 3.2. 检查CPU使用率来确定工作负载是否受CPU限制 3.3. 低延迟&…