- 博客(65)
- 收藏
- 关注
原创 解决:使用MySQL Command Line Client时光标不显示
使用MySQL Command Line Client时,命令行输入字符光标不显示, 如下图:1.按Shift键将输入法切换至中文,打出中文:
2024-07-04 11:01:42
268
原创 队列的实现(C语言)
队列的定义队列的顺序存储-->循环队列方案1:牺牲一个单元来区分队空和队满方案2:增设表示元素个数的变量(不牺牲存储单元)方案3:增设tag数据成员区分队空队满(不牺牲存储单元)链式队列的实现带头结点的链式队列不带头结点的链式队列队列的定义队列(Queue) 是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。队列操作的特性:先进先出(Frist In First Out)队列的顺序存储–>循环队列方案1:牺牲一个单元来区分队空和队满实现:// .
2021-08-07 23:18:02
17461
13
原创 栈的实现(C语言)
栈栈的基本概念栈的实现顺序栈的实现链栈的实现(不带头结点)链栈的实现(带头节点)栈的基本概念栈(Stack):是只允许在一端进行插入或删除操作的线性表。栈顶(Top):线性表允许进行插入和删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。栈的实现顺序栈的实现顺序栈:利用数组存放自栈底到栈顶的数据元素,并设top指针指向当前栈顶元素的位置。// 顺序栈的实现#define MaxSize 50 //定义栈中元素的最大个
2021-08-03 22:34:33
1994
原创 Mysql安装后打开MySQL Command Line Client闪退处理办法,亲测有效
1.找到此电脑,鼠标右击,点击管理2.点击服务和应用程序->服务->找到MySQL鼠标右击启动3.重新打开MySQL Command Line Client成功进入MySQL
2021-05-29 00:20:42
2059
1
原创 Linux基础IO学习
文章目录1.C语言文件操作-->文件流指针2.系统调用的文件操作3. 文件描述符4.文件描述符与文件流指针的关系5. 重定向6. ext2文件系统7. 软链接和硬链接8. 静态库和动态库1.C语言文件操作–>文件流指针1.1 通过一个文件流指针打开一个流并与文件相关联:FILE* fopen(const char* path,const char* mode);FILE: 返回值是文件流指针类型path: 需要打开文件的路径加上文件名称;可以按路径,如果不带路径,则在当前的目录下寻
2021-01-14 17:16:06
305
原创 进程控制学习
文章目录一,进程创建1.1 进程创建概念1.2 fork函数1.3 vfork函数1.4 fork函数和vfork函数的区别二,进程终止2.1 进程终止概念2.2 exit 库函数2.3 _exit 系统调用2.4 exit和_exit的异同三,进程等待3.1 为啥要进程等待?3.2 进程等待的方法3.3 wait和waitpid的不同之处四,进程程序替换4.1 调用哪些函数来进行进程程序替换?一,进程创建1.1 进程创建概念创建一个进程就是创建一个PCB,因为PCB在Linux下就是一个task_
2021-01-11 23:17:37
164
原创 C/C++内存管理(new,delete)详解
动态内存管理一,C/C++内存分布二,C语言中动态内存管理方式1.malloc/calloc/realloc这三个方法之间的区别??三,C++中动态内存管理四,new和delete的实现原理1.内置类型2.自定义类型五,定位new表达式一,C/C++内存分布1.内核空间:放的是与操作系统相关的代码,用户没有权限直接去操作;如果要操作,只能通过指定的api函数进行。2.栈:存放与函数调用相关的一些数据;栈帧:函数的参数,函数体中的局部变量,一些寄存器信息。特性:函数调用完成之后,对应的栈帧就被回
2021-01-08 16:55:06
414
原创 C++中static成员及其作用域
这里写目录标题一,面向过程中的static1.静态全局变量2.静态局部变量3.静态函数二,面向对象中的static关键字(类中的static关键字)1.静态成员变量2.普通成员变量3.静态成员函数4.普通函数一,面向过程中的static1.静态全局变量在全局变量前,加上关键字static,该变量就定义成为一个静态全局变量static int n = 5; //静态全局变量int m = 3; //全局变量,默认为externint main(){ printf("%d\n",n);
2021-01-06 17:29:58
2812
5
原创 Linux下进程虚拟地址空间详解
进程虚拟地址空间一,程序地址空间进程虚拟地址空间写时拷贝存储管理方式--分页式存储管理方式--分段式存储管理方式--段页式一,程序地址空间计算机物理内存的大小是固定的,就是计算机主板内存槽上的实际物理内存,cpu可以直接进行寻址,物理内存的容量是固定的,但是寻址的空间取决于cpu地址线的数量。在32位系统上,线性地址空间可达4G(2^32);这4G一般是按照3:1的比例进行分配,用户进程享有3G的空间,而内核独自享有剩下的1G内存。早期的内存分派方式:最早的时候,计算机还没有虚拟机制,程序
2021-01-06 11:24:51
4435
原创 Linux下进程概念,进程状态,环境变量学习
Linux下进程相关概念学习一,进程概念1. 进程的基本概念1.1 进程和程序的区别??1.2 CPU如何做到多个程序同时运行??2.进程的描述2.1 进程描述--PCB2.2 组织进程二,进程状态1.并发和并行2.进程查看3.进程状态4.僵尸进程详解5.孤儿进程分析三,环境变量1.环境变量的作用2.环境变量常见操作指令3.常见的环境变量4.三种方式获取环境变量:一,进程概念1. 进程的基本概念进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本
2021-01-05 23:13:43
345
原创 Linux常用工具:gcc,gdb和makefile的学习
Linux常用工具学习一,软件包管理工具-yum二,编辑器-vim三,编译器-gcc四 ,调试器-gdb五,项目自动化构建工具-make/makefile一,软件包管理工具-yum软件包管理工具:安装其他的软件工具yum(包管理器)–类似于手机上的应用商店—redhat系列Linux中默认的管理工具。提供软件包的查看,安装,移除等管理操作三板斧操作:1.查看软件包:yum list ----查看所有软件包yum search–搜索指定软件包(示例:yum search gcc / yum
2021-01-03 20:57:08
270
原创 类的六个默认成员函数学习
类的六个默认成员函数一,构造函数二,析构函数三,拷贝构造函数四,赋值操作符重载五,取地址操作符重载六,const修饰的取地址操作符重载什么是默认成员函数?默认成员函数就是 : 你不实现,编译器就会给你实现一份,因为在类中含有默认的六个成员函数。一,构造函数构造函数是一个特殊的成员函数,名字与类名相同,无返回值,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初识值,并且在对象的生命周期内只调用一次。类名(参数列表){ 函数体;};特性:1.构造函数的虽然名称叫构
2021-01-02 19:39:50
254
1
原创 C++中引用的分析
@引用详解引用概念引用:引用就是给变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存。例如:高中同学给我起的外号:疙瘩。疙瘩是我,我也是我类型& 引用变量名(对象命)=引用实体void test(){ int a=10; int& ra=a; // 定义引用类型 return 0;}引用特性1.引用在定义时必须初始化int& r; // 编译时会出错2.一个变量可以有多个引用int a=10;int&
2020-12-30 18:53:53
127
原创 Linux下shell理解和权限学习
shell 的理解一、Unix/Linux的体系架构shell就是用户与内核的沟通桥梁,在Linux下就是一个命令行解释程序(操作系统内核与用户之间的桥梁)Windows下的shell其实可以理解就是通过点击图形接口运行应用程序。shell核心操作:将命令呈递给操作系统,将操作系统处理的结果返还给用户,操作系统提供一些接口(系统调用接口)用户只能通过这些接口完成内核某个特定功能的访问。shell会捕捉用户的标准输入,得到字符串,通过字符串判断用户想要干什么。例如:用户输入ls字符串,shell
2020-11-26 21:48:39
543
原创 Linux基础指令学习
文章目录Linux学习环境基础指令对于目录的指令:文件打包指令:匹配查找指令:系统指令:Linux学习环境在VMware中安装Centos7并使用xshell连接访问VMware:虚拟机软件–在计算机上虚拟出一套计算机硬件环境,用来安装操作系统,提供用户可在单一的桌面上同时运行不同的操作系统。CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统):是Linux发行版之一。Xshell:是一个强大的安全终端模拟软件,可以在Windows
2020-11-05 22:47:31
297
原创 Linux操作系统与Windows 操作系统简介
Linux操作系统1.1 Linux操作系统简介Linux操作系统是基于UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux能运行各种工具软件,应用程序及网络协议,它支持安装在 32 位和64 位 CPU 硬件上。通常的讲,Linux只表示操作系统内核,但是人们已经习惯使Linux来形容整个基于Linux内核的操作系统,并且是一种使用GUN通用公共许可证(GNU General Public License,GPL)工程各种工具和数据库的操作系统。1.2 Linux操作系统
2020-08-02 23:00:07
1481
1
原创 MySQL数据库初识
数据库长期存储在计算机内,有组织的,可共享的大量数据的集合。优点:(相对与文件存储数据而言)文件的安全性更高利于数据查询和管理利于海量数据存储在程序中控制更加方便数据库存储介质:磁盘内存SQL分类DDL数据定义语言,用来维护存储数据的结构代表指令: create, drop, alterDML数据操纵语言,用来对数据进行操作代表指令: insert,delete,updateDML中又单独分了一个DQL,数据查询语言,代表指令: selectDCL数据控制.
2020-06-28 12:24:01
164
原创 C++类中const成员函数与非const成员函数的调用规则
const修饰类的成员函数将const修饰的类成员函数称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在成员函数中不能对类的任何成员进行修改。1.const对象可以调用非const成员函数吗?2.非const对象可以调用const成员函数吗?3.const成员函数内可以调用其它的非const成员函数吗?4.非const成员函数内可以调用其它的const成员函数吗?总结调用的依据其实是传隐含的this指针的过程;在使用const 的时
2020-05-19 23:53:25
2810
原创 为什么C++支持函数重载,而C语言不支持函数重载?
函数重载: C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。C/C++中程序运行起来,需要经历一下几个阶段:在链接时,面对Add函数,func函数,每个编译器都有自己的函数名修饰规则。连接器会使用哪个名字去找呢?下面通过在Linux下gcc和g++的修饰规则,演示这个修饰后的名字采用C语言编译器编译后结果结论:在Linux下,采用gcc编译完成后,函数修饰后名字不变。采用C++编
2020-05-13 22:12:44
838
原创 树和二叉树
1.树的概念及结构1.1 基本概念树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合。有一个特殊的结点,称为根结点,根结点没有前驱结点每棵子树的根结点有且只有一个前驱,可以有0个或多个后继树是递归定义的(根结点+子树)1.2 树的存储表示树有多种表示方式:如:双亲表示法,孩子表示法,孩子兄弟表示法等。常用孩子兄弟表示法typedef int Dat...
2020-03-26 10:40:50
106
原创 栈和队列
1.栈概念及结构一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则栈的实现栈的实现一般可以使用数组或者链表实现#include <stdio.h>#include <stdlib.h>#include...
2020-03-01 21:21:42
87
原创 带头双向循环链表
带头双向循环链表的增删查改实现#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>//带头+双向+循环链表增删查改实现typedef int LTDataType;typedef struct ListNode{ LTDataTyp...
2020-02-16 22:11:48
149
原创 C语言-动态内存管理
为什么存在动态内存分配通常我们内存开辟的方式为:int a = 20;//在栈空间上开辟四个字节 char arr[10] = {0};//在栈空间上开辟10个字节的连续空上述的开辟空间的方式有两个特点: 1. 空间开辟大小是固定的。 2. 数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,有时候我们需要的空间大小在程序运行的时候才能知道,那...
2020-02-13 15:48:41
200
原创 单链表的实现(C语言)
链表的概念及结构链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构1.无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希图、图的邻接表等等。2. 带头双向循环...
2019-12-15 16:51:59
388
原创 动态顺序表
动态顺序表使用动态开辟的数组的存储接口实现现实中基本都是使用动态顺序表,根据需要动态的分配空间大小SeqList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include<stdio.h>#include<stdlib.h>#include<assert.h>//顺序表的动态存储...
2019-12-08 00:33:04
104
原创 顺序表的实现(C语言)
线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。1.顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般...
2019-12-07 23:38:41
204
原创 指针笔试题解析
笔试题1int main() { int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); //&a取地址数组名–>数组指针->数组指针+1->跳过整个数组 printf( "%d,%d", *(a + 1), *(ptr - 1)); //2 ...
2019-11-28 16:20:17
169
原创 数组笔试题解析
sizeof和strlen的区别sizeof(): 是求字节大小的,但是是在编译期间看表达式的结果将来会是什么类型数组名只有处于以下两种情况时才代表整个数组:①数组名单独在sizeof内时。② &数组名(如&a)strlen是函数,只能以char*(字符串)做参数。而且,要想得到的结果正确必须包含 ‘\0’(通过strlen的实现得知)。而strlen是在运行的时候才开...
2019-11-28 00:14:29
162
原创 数据结构-绪论
大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。另外有些算法的时间复杂度存在最好、平均和最坏情况: 最坏情况:任意输入规模的最大运行次数(上界) 平均情况:任意输入规模的期望运行次数 最好情况:任意输入规模的最小运行次数(下界) 平均情况:N/2次找到在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索数据时间复杂度为O(N
2019-11-13 23:54:58
185
原创 C语言-指针深入理解
指针的进阶1. 字符指针字符指针 char*使用方法代码 char* pstr = "hello world"; 特别让人以为是把字符串 hello world 放到字符指针 pstr 里了,但是/本 质是把字符串 hello world 首字符h的地址放到了pstr中。面试题这里str3和str4指向的是一个同一个常量字符串。C/C++会把常量字符串存储到单独的一个内存区域,当几个...
2019-11-10 22:06:58
253
原创 C语言-自定义类型:结构体,枚举,联合
结构体结构体的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体的声明例如描述一个学生:struct Stu{ char name[20]; int age; char sex[5]; char id[20];}S;//S为变量列表typedef struct Stu{ int a; char b; float c;}s,*...
2019-11-02 01:19:55
149
原创 C语言-字符函数和内存函数的模拟实现
前言C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。 字符串常量适用于那些对它不做修改的字符串函数。字符函数和内存函数介绍求字符串长度strlen长度不受限制的字符串函数strcpy strcat strcmp长度受限制的字符串函数介绍strncpy strncat strncmp字符串查找strstr...
2019-10-28 22:44:50
180
原创 C语言-指针初识
指针是什么?内存在计算机中,内存就相当于一条长长的街道。街道两旁住了很多人家,每个人家都有自己的门牌号,门牌号就相当于他们家的地址,并且地址是唯一的。指针指针是个变量,存放内存单元的地址(编号)。#include<stdio.h>int main(){ int a = 10; int *p = &a;//取出a的地址 //地址存放在对应类型的指针当...
2019-10-21 20:39:54
122
原创 c语言-函数
函数是什么定义:子程序。是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,具备相对的独立性。一般会有输入参数并有返回值。提供对过程的封装和细节的隐藏。C语言中函数的分类:库函数C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。如(printf, strcpy, pow)C语言常用的库函数有:IO函数字符串操作函数字符操作函数时...
2019-10-20 20:03:00
447
原创 C语言-数组
1.一维数组的创建和初始化数组的创建数组是一组相同数据类型元素的集合。在创建数组时,我们必须定义数组的类型和大小,数组的大小不能为0。type_t arr_name[const_n];//type_t 是指数组的元素类型//const_t 是一个常量表达式,用来指定数组的大小int arr1[10];char arr2[10];float arr3[5];double arr4...
2019-10-19 22:44:23
626
原创 C语言-数据在内存中的存储
数据类型字符型数据1.字符与字符代码把字符的相对应的ASCII码(整数,映射关系见ASCII码表)放到存储码单元中,而这些ASCII代码值在计算机中同样以二进制补码的形式存放的。2.字符变量字符型数据的存储空间和值的范围(32位操作平台)类型字节数取值范围signed char(有符号字符数)1-2^7 ~ (2^7-1)unsigned char(无符...
2019-10-13 21:21:17
833
原创 HTML语言入门(常用标签集合)
HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记)。相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记语言的规则去解释它。浏览器负责将标签翻译成用户“看得懂”的格式,呈现给用户!(例:djangomoan模版引擎)1.HTML语言语法骨架...
2019-10-07 01:22:11
250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人