自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 fork函数

fork fork)是UNIX或类UNIX中的分叉函数,fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。 从一个软件包拷贝了一份源代码然后在其上进行独立的开发,创...

2020-02-28 13:22:20

阅读数 1

评论数 0

原创 进程概念

1 操作系统 概念 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理) 其他程序(例如函数库,shell程序等等) 设计OS的目的 与硬件交互,管理所有的软硬件资源 为用户程序(应用程序)提供一个良好的执行...

2020-02-28 12:51:19

阅读数 0

评论数 0

原创 指针总结

指针的概念 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节(32位平台/64位平台)。 指针是有类型,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。 指针的运算。 字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* ...

2020-02-24 15:41:06

阅读数 13

评论数 0

原创 排序算法——一篇文章搞懂常用的排序算法

1.排序的概念及应用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中r[i]=r[j],且r[i]在r[j]之前...

2020-02-17 21:59:50

阅读数 2503

评论数 0

原创 堆(heap)和栈(stack)的区别

编程经常需要操作的内存 栈区(stzck):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。 堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。它与数据机构中的堆是两回事,分配方式类似于链表。 全局区(静态区)(s...

2020-02-13 16:22:27

阅读数 1575

评论数 0

原创 运算符重载(看完这篇彻底掌握重载问题)

运算符重载概述 什么是运算符重载 运算符重载:用同一个运算符完成不同的运算功能。 C++运算符重载的相关规定如下: 1.不能改变运算符的优先级。 2.不能改变运算符的结合性。 3.默认参数不能和重载的运算符一起使用,也就是说,在设计运算符重载成员函数时不能使用默认函数。 4.不能改变运算符的操作...

2019-09-27 21:05:40

阅读数 135

评论数 0

原创 字符函数和字符串函数

目录: 求字符串长度:strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 字符串查找 strstr strtok 错误信息报告 strerror 字符操作 内存操作函数 memcpy mem...

2020-02-25 12:54:54

阅读数 6

评论数 0

原创 深度剖析数据在内存中的存储

数据类型介绍 C语言基本的内置类型: char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 类型的意义: 使用这个类型开辟内存空间的大小(大小决定了使用范围)...

2020-02-23 23:11:06

阅读数 3

评论数 0

原创 结构体

结构体的声明 结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 结构的声明 struct tag { member-list; }variable-list; 例: typedef struct student{ int sid; .//学号 ...

2020-02-23 20:11:45

阅读数 9

评论数 0

原创 数组大小分配(动态内存分配)

在使用数组的时候,总是有一个问题,数组应该有多大? 在很多情况下,我们无法确定要使用多大的数组。一般申请大于估计数目的固定大小,这样程序在运行时就申请了固定的大小,你觉得数组定义足够大,但是如果某种原因,数组的个数增大或减小,你又必须重新修改程序,扩大数组的存储范围。这种分配固定大小内存分配的方法...

2020-02-22 21:31:40

阅读数 102

评论数 0

原创 关键字static的作用

关键字static的作用是什么 函数体static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值 在模板内的static全局变量可以被函数内所有函数访问,但不能模板外其他函数访问 在模板内的static函数只可被这一模块内的其他函数调用...

2020-02-15 23:25:18

阅读数 96

评论数 0

原创 MySQL-单表操作

数据操作 复制表结构和数据 复制已有表结构 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名 {LIKE 旧表名 | (LIKE 旧表名) } 复制已有表数据 INSERT [INTO] 数据表1 [(字段列表)] SELETC [(字段列表)] FRO...

2019-12-11 22:48:40

阅读数 182

评论数 0

原创 MySQL-数据库设计范式

第一范式(1NF): 第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值,或不能有重复的属性。 第二范式(2NF): 第二范式是在第一范式的基础上建立起来的,满足第二范式必须先满足第一范式。第二范式要求实体的属性完全依赖与主键,不能仅依赖主键...

2019-12-06 21:51:06

阅读数 185

评论数 0

原创 MySQL—数据类型与约束

数据类型 数字类型 整数类型 整数类型可分为五种:TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT 数据类型 字节数 无符号数的取值范围 有符号数的取值范围 TINYINT 1 0~255 -128~127 SMALLINT 2 0~65535 -32...

2019-12-06 21:43:24

阅读数 182

评论数 0

原创 MySQL—电子杂志订阅表的实现

实践需求 (1)在mydb数据库中创建一张电子杂志表格(subscribe) (2)电子杂志订阅表中要包含四个字段,分别为编号(id)、订阅邮件的邮箱地址(email) 、用户是否确认订阅(status,使用数字表示,1表示已确认,0表示未确认)、邮箱确认的验证码(code)。 (3)为电子杂志订...

2019-11-30 19:28:03

阅读数 203

评论数 0

原创 MySQL数据库的基本操作

数据库操作 创建数据库 CREATE DATABASES 数据库名称 [库选项]; CREATE DATABASE IF NOT EXISTS 数据库名称 [库选项]//表示指定的数据库不存在时执行创建操作,否则忽略此操作 “数据库名称”可以是字母、数字和下划线组成的任意字符串 “库选项”用于...

2019-11-30 18:28:43

阅读数 135

评论数 0

原创 Linux简单命令练习及总结

将之前所创建的目录和文件全部清理掉 $ rm [-f-i-r-v][dirName/dir] //-f 即使文件属性为只读(即写保护),亦直接删除 //-i 删除前逐一询问确认 //-r 删除目录及其下所有文件 在家目录下创建 ~/workspace/cmd 目录以及 ~/workspac...

2019-10-11 15:42:24

阅读数 58

评论数 0

原创 模板(下)——(类模板)

类模板 声明类模板 类模板的成员函数被认为是函数模板,也称为类属函数。 声明类模板的一般格式如下: template 类型形参表 class 类名 { 类声明体; }; template 类型形参表 返回类型 类名 类型名表::成员函数1(形参表) { 成员函数定义体; }; template...

2019-10-01 21:42:38

阅读数 41

评论数 0

原创 模板(上)——(函数模板)

模板概述 C++有两种模板机制:函数模板和类模板。模板中的参数也称为类属参数。 模板、模板类、对象和模板函数之间的关系: 函数模板 函数模板是对一组函数的描述,他不是一个真实的函数,编译系统并不产生任何执行代码。当编译系统在程序中发现有与函数模板中相匹配的函数调用时,便产生一个重载函数,该重载函...

2019-09-30 23:15:41

阅读数 45

评论数 0

原创 友元

友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。 友元函数 声明友元函数 友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。 格式如下: class Myclass {...

2019-09-15 16:54:16

阅读数 55

评论数 1

原创 一个满足下边要求的CDate类

练习:编写一个函数,设计一个满足下边要求的CDate类,用数据进行调试并输出结果 //(1)用日/月/年格式输出日期。 //(2)可进行日期加一天的操作 //(3)设置日期。 #include<iostream> using namespace std; class CDate { p...

2019-09-13 17:22:15

阅读数 67

评论数 1

原创 析构函数

什么是析构函数 当对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构函数。在C++语言中:析构函数名应与类名相同,只是在函数名前面加一个位取反符 ~ ,例如 ~ stud( ),以区别于构造函数。 它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。...

2019-09-13 15:45:54

阅读数 51

评论数 0

原创 C++内存管理(new与delete)

1.new与delete new 与delete运算符一起使用,以达到直接进行动态内存分配和释放的目的。 运算符new返回指定类型的一个指针,如果分配失败(如没有足够的内存空间),则返回0。 例: double *p; p = new double; 系统自动根据double类型的空间开辟一个内...

2019-09-12 21:04:11

阅读数 68

评论数 1

原创 指针和数组的关系

在C++中,数组与指针密切相关,几乎可以互相使用。数组名可以认为是常量指针,它指向存放数组第一个元素的内存地址。指针可以完成任何涉及数组下标的操作。 实际上,数组下标表示法在编译期间将转化为指针表示法,所以用指针方式来书写数组下标表达式可以节省编译时间。 例如,对于下面的数组定义: char na...

2019-09-08 21:54:57

阅读数 45

评论数 0

原创 宏替换、条件编译、头文件展开

宏替换、文件编译和头文件的展开 程序执行的几个步骤: 1.预处理: ①将头文件展开 ②宏替换 ③条件编译 ④去掉注释 2.编译: ①语义语法纠错 ②将.c文件编译成汇编语言 3.汇编:将汇编语言变成二进制机器语言 4.链接:将所有的目标文件和依赖的库文件进行汇总,得到最终的可执行程序 ...

2019-08-19 21:56:03

阅读数 71

评论数 0

原创 顺序表总结以及代码实现

1.顺序表概念 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般可以分为: 静态顺序表:使用定长数组存储。 动态顺序表:使用动态开辟的数组存储。 2.接口实现: 静态顺序表只适用于确定知道需要存多少数据的场景。静态...

2019-08-17 00:55:26

阅读数 75

评论数 0

转载 编译连接的过程总结

C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。 编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。 链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。 1.编译过程 编译过程...

2019-08-16 02:14:58

阅读数 47

评论数 0

原创 时间复杂度与空间复杂度总结

时间复杂度: 时间复杂度的计算并不是计算程序具体运行的时间,而是算法执行语句的次数。 当我们面前有多个算法时,我们可以通过计算时间复杂度,判断出哪一个算法在具体执行时花费时间最多和最少。 常见的时间复杂度有: 常数阶O(1), 对数阶O(log2 n), 线性阶O(n), 线性对数阶O(n lo...

2019-08-13 23:00:32

阅读数 59

评论数 0

原创 C语言符号重载与运算符优先级存在的问题

C语言中的符号重载 C语言运算符优先级存在的问题

2019-08-02 22:11:33

阅读数 64

评论数 0

原创 容易混淆的const

关键字const并不能把变量变为常量!在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是他的值对于这个符号来说是只读的,但它并不防止通过程序的内部的方法来修改这个值。const最有用之处就是他来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。 c...

2019-08-02 20:32:03

阅读数 47

评论数 0

原创 C++入门知识(二)

6.引用 1.什么是引用? 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 **类型& 引用变量名(对象名) = 引用实体;** void TestRef() { int a = 10; int& ...

2019-08-01 16:04:16

阅读数 48

评论数 0

原创 C++入门知识(一)

一、#命名空间 在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。 1.命名空间的定义 定义命名空间,需要使用到n...

2019-07-31 16:18:28

阅读数 69

评论数 0

原创 一级指针、二级指针、指针和数组、指针数组总结

#一级指针、二级指针、指针和数组、指针数组总结 ##数组:C 语言中所有的数组都可以看成是一维数组,数组传参的时候会发生降维问题,任何数组传参都会降维成指针。 ##指针:指针存放变量的地址,指向的值是变量的内容。 ##指针数组:数组元素全部为指针的数组成为指针数组。 ##数组指针:指的是数组名的指...

2019-06-03 10:42:56

阅读数 100

评论数 0

原创 初来乍到,请多多指教

初来乍到,还请各位前辈赐教

2019-05-18 14:16:07

阅读数 95

评论数 2

原创 C语言操作符

C语言操作符 算术运算符 移位操作符 位操作符 赋值 复合赋值符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员 算术运算符 C提供了常有的算术运算符: +、 —、 *、 /、 %、 除了%操作符,其余操作符既适用于浮点类型,又...

2019-04-10 21:29:39

阅读数 50

评论数 0

原创 C语言实现三子棋

头文件 1. 头文件 #pragma once #ifndef _SANZIQI_H_ #define _SANZIQI_H_ #define ROW 3 #define COL 3 void init_board(char arr[ROW][COL], int row, int col);//...

2019-04-08 18:48:05

阅读数 50

评论数 0

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