暂时未有相关云产品技术能力~
大一本科在读,热爱编程, 热爱敲代码,对新知识有强烈的渴望。
AnyTXT Searcher结合内网穿透实现快速在线办公搜索!
Linux Docker图形化工具Portainer如何进行远程访问
PostgreSQL 数据库实现公网远程连接
Linux 部署1Panel现代化运维管理面板&远程访问
【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」
【Linux】进程的基本属性|父子进程关系
VSCode使用Remote SSH远程连接Linux服务器【远程开发】
//简易的关机代码,下面介绍两种方法,一种方法用goto 语句,一种方法用while循环
链表:顾名思义,就像一条铁链一样,把每一个铁链的链节点连接起来。 链表的基本结构如下: 链表每个节点的创建 首先,一条铁链,有多个节点,每两个节点之间会连接起来。 那么这些节点是如何创建的呢? —结构体—
1.创建结构体,对象为学生,结构体信息有学号,分数,总分,排名 2.使用函数实现不同的功能 2.1.输入学生的信息:
解决visual studio 对scanf ,strcpy,strcmp等函数的不安全警告报错 可以看到,编译器对scanf进行了报错,原因是说它不安全 编译器自己给了一种解决方案: 使用vs自带的 scanf_s,但是用这个函数,仅仅能够在vs上使用,在其他编译器可能无法使用。
1.学习总结 学习c语言已经有100天,从一个初出茅庐的无知青年,敲出第一个hello world 都激动的不行,到现在: 常见的数据类型, 变量的命名方式, 变量的分类 到变量的作用域和生命周期 常量 字符串和转义字符和注释的使用 选择语句 循环语句 函数 数组 操作符 常见的关键字 define定义常量和宏 指针 结构体 初识链表 初识文件管理等等等等 还有个人的重点笔记总结+笔试题精髓笔记
BF 算法 BF 算法精讲 在学习到字符串的匹配问题时,了解到了BF算法和KMP算法。 对比这两个算法,先了解BF算法; 字符串匹配问题,比如说:有一个主串 “abbbcdef” , 子串 “bbc”,该问题就是在主串中查找子串。 肉眼可见,主串中的确存在子串bbc,返回值是子串在主串中第一次出现的首位置下标,也就是返回2. BF
KMP算法核心剖析: 关于KMP算法,建议先了解 BF算法 KMP算法是用来解决字符串匹配问题的高级算法,看完这篇文章,你应该能理解KMP算法。 KMP算法和BF算法唯一的区别在于:主串的i 并不会回退,子串的j也不会回退到0位置。 KMP算法的核心在于求出子串的next数组 所谓的next数组,其实存放的就是子串回退的位置的下标。 下面来演示如何求出一个子串的next 数组 假设有一个字符串:“ababcabcdab”, 求该字符串的next数组: 规定:next[0] = -1 , next[1] = 0 下面就来求next[2] ,next[3]…
柔性数组概念 对于柔性数组,也许你之前从未听说过,柔性数组,顾名思义,就是数组,它的柔性柔在元素个数可以动态变化, 即柔性数组是未知大小的,数组大小可以动态变化的。 在结构体中,最后一个元素允许是未知大小的数组,这个数组就叫柔性数组成员。 下面直接举例子来说明柔性数组。
整型提升: 在计算机中,一个数据的类型如果是char 类型,以整型的形式打印该char类型的值时,会自动转换成整型,叫做整型提升。 整型提升的规则: 整型提升是按照变量的数据类型的符号位来提升 举例说明整型提升的存在:
浮点数的存储规则: 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。
首先分析代码,a是数组名,是数组首元素地址,&a取到整个数组的地址,+1跳过了整个数组,a强转成int*类型,然后赋值给ptr,此时ptr指向的就是数组a后面的地址,如下图:
当你遇到下图这个错误时,是由于SQLyog在8.0以上版本采用了新的加密方式。
我们知道,strcpy函数是拷贝字符串的,但是它并不能拷贝例如整型,结构体之类的东西,strcpy有一定的局限性,memcpy函数可以说涵盖了所有类型数据的拷贝。
1.程序翻译环境和运行环境 假设一个test.c文件经过编译器编译运行后生成可执行文件test.exe,这中间存在两个过程: 一个是翻译,在这个环境中源代码被转换为可执行的机器指令。 一个是运行,它用于实际执行代码。 在翻译环境阶段,会进行编译和链接操作。 在汇编阶段,是将汇编指令转换成二进制指令。 1.1程序翻译中的的编译和链接
栈是什么,栈的特点 数据结构中有一种特殊的线性表叫栈。 栈有一种特点: 它允许后进入的数据先拿出来。 类似一个弹夹,或是一个装砖头的容器。
一.环形队列的定义及其特点 循环队列是一种线性数据结构,其操作依然是先进先出原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 特点: 对于一个普通队列来说,每出队一次,头指针就必须往后移一位,这样使用过的空间就无法再重复使用,(头指针无法回移),即使队列元素小于队列大小,也无济于事,造成空间的浪费。 而对于循环队列来说,可以重复利用使用过的空间。解决了普通队列的问题。 基于循环队列的特点:我们可以使用数组或者循环链表来实现循环队列。 使用数组实现的话,尾指针到数组的大小时,回溯到头位置即可。
一、列表及其使用 1.列表的特点 1.列表类似于数组,有下标。 从左到右开始的话,下标是从0开始的,从右到左的话,下标是从-1开始的。 2.列表的元素可以是任意类型的,而数组的元素只能是同一种类型的元素。 3.下标的使用不能超过元素的数量,否则会报错。 2. 列表的使用方法 1)查找某元素在列表中的位置
一、1.树是什么? 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
一、什么是哈夫曼树 当用 n 个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。 二、哈夫曼树相关概念 1.路径 在一棵树中,一个结点到另一个结点之间的通路,称为路径。
一、堆的定义 堆的本质是一个数组,但是这个数组被看作成一棵完全二叉树。 堆分为两种,大根堆和小根堆 1.大根堆 大根堆是每一个节点的值都大于它左右孩子节点的值。 如下图所示,这就是一个大根堆:每个父亲都大于它的孩子。
1.auto作用 auto关键字能够自动识别变量类型。 2. auto的原理 auto定义的变量会在编译阶段根据右值来推出auto变量的类型。 1.使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。 2.因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。 3.使用auto的细则 3.1. auto与指针和引用结合起来使用
建立连接三板斧: add , commit ,push Linux与git远程连接的方法: 1.设置全局的用户名和邮箱 git config – global user.name “你的用户名” git config – global user.email “你的邮箱”
前言 tips: 关于前两篇文章所提到的sudo指令 我们知道,sudo指令后面紧跟的一条指令,该条指令是以root身份执行的对于有一些我们普通用户无法执行的指令,就需要用到该指令进行提权。
13.head指令 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中而 tail 想当然尔就是看档案的结尾。
1.Linux下用户的分类 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
1.什么是函数模板? 函数模板简单来说就是一个模板,与函数参数的类型无关,是一个模子,不是真正的函数,实例化的函数会根据实参的类型自动推导类型。