自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 C语言中一些基础的代码

【代码】C语言中一些基础的代码。

2024-08-21 17:00:06 129

原创 C++基础编程的学习3

nullptr。

2024-08-08 21:17:43 317

原创 C++基础编程的学习2

友元函数可以访问类的私有或保护成员,但它不是类的成员。友元关系是单向的,即一个类将另一个类的成员函数声明为友元,并不意味着另一个类也提供了互惠的访问权限。通过共享数据成员,可以实现类的共享效果。例如,一个员工类中的公司名可以作为共享成员,这样当一个员工的公司名改变时,所有员工的公司名都会改变。在C++中,has-a关系是一种对象之间的组合关系,表示一个类的对象包含另一个类的对象作为其成员。指针只在类的非静态成员函数中存在,指向调用成员函数的对象。修饰成员函数时,它保护的是对象本身,而不是成员函数的参数。

2024-08-07 22:33:23 335

原创 C++编程基础的学习

C++是一种功能丰富且复杂的编程语言,它提供了强大的特性来支持面向对象编程。通过理解C++的基础概念和特性,开发者可以更有效地编写高质量、可维护的代码。同时,Qt框架的跨平台特性为C++开发者提供了一个强大的工具,以创建可在多个平台上运行的应用程序。

2024-08-06 21:12:59 978

原创 linux下frambuffer的使用

Framebuffer是一个内存区域,操作系统可以通过它直接控制显示设备的像素。与传统的图形加速硬件不同,framebuffer不依赖于图形处理器,而是通过CPU来处理图形数据。这种方式虽然在性能上可能不如硬件加速,但在资源受限的嵌入式系统或者需要快速原型开发的场合非常有用。

2024-07-31 23:32:48 665

原创 数据结构的学习2

3,完全二叉树,对于一颗有n个结点的二叉树按层序编号,如果编号i(1<=i<=n)的结点于同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这可树为完全二叉树。n个结点的有限集合,集合要么为空树,要么由一个根结点和两棵互不相交,分别称谓根结点的左子树和右子树的二叉树组成。中序,左根右,先从根开始(不是先访问根),从左开始访问,在访问根,在访问右结点。1,斜树,所有的结点都只有左子树,左斜树,所有结点都只有右子树,右树。n = 0 ,空树。树的度数是指,这棵树中,最大的结点的度数,称谓树的度数。

2024-07-28 14:28:09 454

原创 数据结构基础的学习

为了表示每个数据元素,ai与其直接后继数据元素ai+1之间的逻辑关系,对ai来说,除了存储其本身的信息外,还需要存一个指示器直接后续的信息。简单的来说,就是将原来单链表中最有一个元素的next指针指向第一个元素或头结点,链表就成了一个环,头尾相连,就成了循环链表。,线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素,存储单元可以是连续的,也可以不连续。逻辑关系和物理关系一致链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。注意非空表,和空表。1,插入,删除元素需要移动元素o(n)

2024-07-28 14:27:14 485

原创 学习如何使用html制作网页

二姐 <rt>(er) (jie)<rt>下载

2024-07-16 19:18:45 1029

原创 数据库基础学习

从一个名为 user 的表中选择 id 小于 10 的所有记录,然后按照 id 升序排列,并限制结果只返回前两行。////select。功能:该函数用于sqlite3_exec执行select语句的。fun 如果该函数要执行查询语句,则该回调函数。f_num 执行该命令所返回测结果集的字段个数。打开数据库 ==》读写数据库(增,删,改,查) ==》关闭数据库。f_name 查询结果集中的字段的名称。功能:在db数据库上执行sql查询语句,并将执行的。f_value 查询结果集中的字段的值。

2024-07-15 22:50:02 840

原创 网络编程学习之IO多路复用

而CPU单核在同一时刻只能做一件事情,一种解决办法是对CPU进行时分复用(多个事件流将CPU切割成多个时间片,不同事件流的时间片交替进行)。在计算机系统中,我们用线程或者进程来表示一条执行流,通过不同的线程或进程在操作系统内部的调度,来做到对CPU处理的时分复用。应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标的输入、中断信号等等事件,再比如web服务器如nginx,需要同时处理来来自N个客户端的事件。///获取fd文件的默认属性到flag变量中。

2024-07-13 09:34:26 1137

原创 网络编程的学习之tcp2

5、抓包工具 tcp.port == 50000 && tcp.ip == 192.168.0.183。1、根据ip地址过滤:ip.src == x.x.x.x。netstat -n -t ===>列出所有TCP通信的端口信息。netstat -n -u ===>列出所有UDP通信的端口信息。arp -an ===>列出当前主机的地址ARP表。netstat -n -i ===>列出默认接口上的通信信息。netstat -n ===>列出当前所有网络端口使用情况。

2024-07-12 11:53:05 1051

原创 网络编程学习之tcp

主机1 《---A ----- 主机2 主机1 不在发送消息,但是有可能接受消息。主机1 ----A ----》主机2 主机1 2 全部完毕。1、TCP 是有连接的通信过程,需要三次握手建立链接。主机1 -----syn-----》主机2。主机1 《---ack syn--- 主机2。主机1 ----ack -----》主机2。主机1 --- F A ---》主机2。主机1 《---F A --- 主机2。Upd类似于半双工,tcp类似于全双工。三次握手:ACK是应答,

2024-07-11 11:13:04 612 2

原创 网络编程的学习之udp

服务端需要一个地址,去保留名字和ip地址。这里是不要让udp发的太快,发个东西过去。上面是端口号50000以上,两边要一样。验证了udp发送接收的数据是有边界。为什么右边写在里面比较结束标志。Netstat可以查看网络状态。下面这个宏只能在c语言里使用。收和发的时候次数要一致。

2024-07-10 14:53:05 485

原创 使用Mplayer实现MP3功能

这个视频播放器项目是我学习旅程中的一个里程碑。我相信,随着技术的不断进步,我将能够开发出更加复杂和功能丰富的应用程序。

2024-07-09 21:20:37 1242

原创 网络编程的学习

1、socket 套接字 ==》BSD socket ==》用于网络通信的一组接口函数。PF_UNIX == AF_UNIX ==>单机程序。SOCK_STREAM 流式套接字 ===》TCP。主机转网络:in_addr_t inet_addr(const char *cp);SOCK_RAW 原始套接字 ===》IP。网络转主机:char *inet_ntoa(struct in_addr in);主机转网络:uint32_t htonl(uint32_t hostlong);

2024-07-09 00:07:44 483

原创 C语言之信号与共享内存的学习

void fun(int sig) ////sig 接收到的信息编号。sig 当前程序要发送的信号编号 《=== kill -l。===》xx是 void fun(int) 类型函数的函数指针。2、信号 kill -l ==>前32个有具体含义的信号。功能:通过该函数可以给pid进程发送信号为sig的系统信号。===>fun 有三个宏表示:SIG_DFL 表示默认处理。参数:pid 要接收信号的进程pid。

2024-07-03 21:37:37 900

原创 C语言管道的学习

2024-07-03 10:36:22 409

原创 C语言实现简单的minishell

在计算机编程的世界里,Shell 是一个至关重要的组成部分,它允许用户与操作系统交互,执行命令和程序。MiniShell 是一个简化版的 Shell 程序,通常用于教学和学习目的。在本文中,我们将深入分析一个 MiniShell 的实现代码,并探讨其功能和潜在的应用场景。Minishell项目的功能,主要就是实现命令的运行。涉及命令如下:1,cp 复制文件 cp 1 2 把文件1复制成文件22,cat 查看文件 cat 1 查看文件到内容。

2024-07-01 21:30:59 1133

原创 C语言之进程的学习2

互斥锁:

2024-07-01 21:03:01 169

原创 C语言之线程的学习

多线程任务中,其中某一个线程调用了exit了,其他线程会跟着一起退出。如果是特定的线程就调用pthread_exit。线程共享变量,进程不共享。

2024-07-01 21:02:03 708

原创 C语言之进程的学习2

Env环境变量(操作系统的全局变量)

2024-07-01 21:00:21 281

原创 C语言之进程学习

进程的状态中,僵尸进程是非常特殊的一种,它是已经结束了的进程,但是没有从进程表中删除。太多了会导致进程表里面条目满了,进而导致系统崩溃,倒是不占用其他系统资源。进程打开的文件列表:就是0 1 2 stdin stdout stderro等。类似于任务管理器是动态分ps是静态的。僵尸态要父进程消亡才会被带着一起消亡。进程在调度的时候有一定的随机性。有进程结束就会把命令行打出来。子的id号要比父的要大。一般调用exit();

2024-06-26 23:48:51 472

原创 Linux文件IO操作的学习

Open的返回值是3,因为0,1,2被占用了。文件IO和标准IO互相转换可以使用以上两个函数。使用read和write实现cat操作。生成与原文件大小一致的空洞文件。文件描述符最小是0,非负数。把隐藏文件也给读出来-ai。输出当前目录下的文件。

2024-06-24 23:10:22 373

原创 Linux环境编程基础学习2

1.diff A B比较两个文件是否一样,一样则什么结果都没有。For循环累加求和,两种方式,c方式的运算更快。Od -c 文件名可以显示出文件中的不可见字符。

2024-06-20 22:49:21 489

原创 linux环境编程基础学习

相对的chmod -x xx.sh可以移除权限。想获取变量的值要掏点dollar($)双引号可以加反单,但是发过来就不行。Shell里面的switch。运算时左右两边必须要加空格。输入一个文件,判断文件类型。*号多个含义必须加转义符。多位的话要加个花括号。

2024-06-19 21:07:22 583

原创 2048小游戏的菜鸡实现方法

这段代码的目的是将每一行中的所有非零元素向左移动,直到遇到空格,然后跳过空格继续移动,直到该行的所有非零元素都被重新排列在行的左侧。当玩家向左移动方块时,如果一行中有相邻的两个方块数值相同,它们会被合并成一个数值为这两个方块数值之和的新方块,而不相同的方块则向左移动以填补空位。randin()代码因为实力不足写的比较长,这段代码的目的是遍历4x4的数组,找到空位,并在其中一个空位上随机生成一个值为2或4的新方块,其中使用了goto跳出二重循环。合并后,还需要再次进行移动,以确保所有可以合并的方块都被合并。

2024-06-07 20:22:04 1181

原创 C语言基础学习之位运算

4.枚举常量,可以给初值,给了初值之后,后面的值会依次影响到。1.c语言中 对于枚举类型 实际上是 当作整型处理的。为了 可移植性 给一些类型起别名。写成枚举,可以做语法检查。3.枚举常量,之间用逗号隔开。往往用于 给复杂类型 起别名。2.提高代码可读性,以上两种都可以得1的个数。

2024-06-05 19:31:46 576

原创 C语言基础学习之链表与共同体

1.共用体初始化时,只能给一个值,这个值默认时给到第一个成员的。赋值的时候,每个成员只能影响,自己对应的字节。可以让,多个变量,共用 同一块内存空间。2.共用体空间中数据,取决最后一次给到值。优势:增力和删除数据方便劣势:存取不方便。可以做函数参数 和 返回值。一般情况下数据节点都是开在堆上的。可以通过union查看电脑大小端。不足:插入数据删除数据不方便。优势:随机访问(存取)方便。共用体 (union)链式数据结构--链表。union 共用体名。大小看成员最大字节。

2024-06-04 21:04:57 552

原创 C语言学习之结构体

c语言---提供的一种方式,可以让用户自定义数据类型,用于处理复杂的数据类型。//如果没有超过4字节的,则按成员变量中最大对齐。//如果没有超过4字节的,则按成员变量中最大对齐。此时 整个结构体按照最大的那个成员对齐。s.name //表示访问s变量中的 name。1.在32位的平台上,默认都是按4字节对齐的。3.如果 成员变量中有比4字节大。//如果超过4字节的,按照最大的成员对齐。//如果有超过4字节 ,按照4字节对齐。4.如果 成员变量中没有有比4字节大。结构体的对齐规则: //内存地址的对齐。

2024-06-03 20:42:27 450

原创 C语言基础学习之数组指针

不需要加{},“hello”是字符串常量相当于一个地址,将一个地址给到一个地址。需要调用#include<stdlib.h>头文件。可以接受任意类型的地址,但是使用的时候需要强转。

2024-05-30 23:42:15 509

原创 C语言基础学习之数组2

/基类型 int[4]这种类型 ---数组类型。//a数组名 -- &a[0]//标准C语法: int (*)[4]//相当于是 int[4] 这个一维数组的数组名。&a[0] //int[4] * 指针类型。a[0] //数据类型 int[4]int (*p)[4];a<=>&a[0] //值的角度。*p //等价与 a[0]a 还是首元素的地址。

2024-05-29 22:09:56 424

原创 C语言之指针数组基础学习

if (begin >= end) { // 如果begin >= end,即待排序数组中只有一个元素或没有元素,直接返回。// 对右半数组进行快速排序。// 对左半数组进行快速排序。// 定义指针p指向数组的开头。// 定义指针q指向数组的结尾。// 从数组结尾向开头遍历,找到一个小于k元素的值。// 从数组开头向结尾遍历,找到一个大于k元素的值。// 将指针k指向数组开头的元素。// 交换begin和end指向的元素。// 递归对左右两个子数组进行快速排序。// 将基准元素放到正确的位置上。

2024-05-28 21:55:48 425

原创 C语言学习之指针1

/因为左右两边类型不一致,p是int * //int * 表示 是一个 存放int类型数据的 空间的地址。//a 是一个float类型的变量, &a 表示获得了这块空间的地址,这个值的类型是float *//表示的p中存放的 地址编号 所代表的那块空间 中要存放的数据的类型。(2) * --- 表示 定义的变量,不是一般变量,而是指针类型的变量。(1) 基类型 --- 表示 地址编号 所代表的那块空间 中要存放的数据的类型。所以 *p 整体相当于是一个基类型的变量。

2024-05-27 21:08:21 328

原创 C语言学习之预处理

注意上述代码的宏定义结果出来是5,而不是两数相乘,因为宏是直接替换文本,文本直接带入结果和正常函数使用不一样,要么就一直加括号()。Register:寄存器register int i,这种可以优化代码速度。C语言与其他高级语言的一个重要区别是可以使用预处理命令和具有预处理的功能。Static修饰的局部变量不能用变量初始化(不管是全局还是局部变量)可以自己在gcc中编译以下gcc a.c b.c。后面不要加分号要要不然文本的原样替换会把分号也一起替换过来。预处理:预编译(正式编译之前的准备工作)

2024-05-27 09:35:56 477

原创 C语言基础之函数3

但是,它不需要传数组长度 (原因,是因为一维字符型数组中,主要处理的是字符串数据,1. 写一个二维数组的形式 (行数可以省略,列数不能省略)1. 写一个二维数组的形式 (行数可以省略,列数不能省略)存储的空间发生变化 ---放在了静态区(全局区)二维字符型数组作为函数参数,语法与 二维整型数组类似的。在花括号范围内的,都是局部作用域。2.同一作用域中,不能有同名标识符 //重复定义。3.在不同的作用域,同名标识符,相互之间没有影响。标识符作用的范围 ---起作用的范围。会屏蔽外层的作用域的同名标识符。

2024-05-24 21:22:29 573 1

原创 C语言基础学习函数2

/n-1 鍏堟尓璧?//1.数组元素的类型 是否 与形参类型一致。把各个功能拆开,把大问题化解为小问题。2. 手动申请,手动释放。想把整个数组传入到函数中。//形参 和 实参 规则。数组元素作为函数参数。

2024-05-23 21:12:27 768 1

原创 C语言回顾

//运算结果 逻辑值 真(1) 假(0)//"" 空字符串 ---有一个'\0'signed short => int //高位补 符号位。unsigned short => int //高位补0。(1).数组 --是一组相同类型的(变量)数据的集合。"" //双引号括起来的就是字符串。识别的方式,去掉数组名,剩下的就是数组类型。//错误 --因为a是一个只读的变量。//错误 -- 10不是一个左值。int => short //高位截断。1.变量 //变量名的命名规则。

2024-05-22 20:34:32 984 1

原创 C语言基础学习之函数

6.如果函数没有返回值,此时返回值类型说明符 可以写成 void //空 -没有。2.返回的结果,与返回值类型说明符,之间类型不一致时,以返回值类型说明符的类型为准。返回值的类型标识符 //用来说明 该函数(function)带出来数据的类型。问题n的解决,需要问题n-1的解决,往前推,直到,有一个明确的结果。//step2: 考虑 这个函数,需要用到哪些数据 --- 形式参数。返回值的类型标识符 函数名(形式参数) //函数头 ---head。return 语句 //表示,从函数中返回(就是函数结果)

2024-05-17 22:14:32 807

原创 C语言基础之字符库与二维数组

输出会是以上结果,因为ab数组在计算机空间是连在一起的,helloworld把a[10]占满了而且没有’\0’,所以会继续越界输出与之相邻的b。这个也可以完成,因为非0为真,最后一个输出\0也就是0的时候判断为假,循环结束,完成复制赋值。//n可以是个变量 ,但是使用时,数组不能初始化。//a[i][j] = 表达式;

2024-05-16 20:57:51 530

原创 C语言基础学习之数组

这里scanf后要加个getchar()把输入那个回车读走,要不然还是在缓冲区,\n直接被读走,程序达不到预期的结果。此时处理字符串时,主要看'\0'结束标志。'h''e''l''l''o''\0' //字符串长度指的是 '\0'前面字符的个数。虽说只有五个字符,但是在计算机里面最后有个\0,用sizeof结果是6。#include<string.h>:有关str的函数需要调用该头文件。循环后那个判断语句是帮助判断要查询的数是否在该有序数列中。功能:将字符串输出,(它会默认输出一个'\n ' )

2024-05-15 20:29:57 528

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除