自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基础

引用引用不是定义一个新的变量,而是给已存在变量取一个别名,编译器不会为引用变量开空间,它和它引用的变量共用同一块内存空间类型& 引用变量名(对象名) = 引用实体引用类型必须和引用实体是同种类型的1.引用的特性1.引用在定义时必须初始化2. 一个变量可以有多个引用3. 引用一旦引用一个实体,再不能引用其他实体2.指针和引用赋值:权限的缩小是可以成功的;但是权限的放大会报错...

2019-07-31 16:01:20 141

原创 STL模拟实现

GITHUB链接:https://github.com/Zruzhuo/C_Realize/tree/master/stl_string

2020-02-24 17:18:45 305

原创 C++内存管理

new和delete操作符C++通过new和delete操作符进行动态内存管理new/delete操作内置类型申请和释放单个元素的空间,使用new和delete操作符。申请和释放连续的空间,使用new[]和delete[]。new/delete操作自定义类型class A{};void test(){ A* p1 = new A;//申请单个A类型的对象 delete p1;...

2020-02-23 20:14:53 137

原创 类与对象(二)

类与对象构造函数1.构造函数体赋值在创建对象时,编译器调用构造函数后,对象中已经有了一个初始值,但是不能称作类对象成员的初始化,构造函数体中的语句只能称作赋初值,因为初始化只能初始化一次,而构造函数体内可以多吃赋值。2.初始化列表初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个“成员变量”后跟一个放在括号中的初始值或表达式。class A{public: A(...

2020-02-23 19:24:51 162

原创 类与对象(一)

类与对象的初步认知类的定义类对象模型1.如何计算类对象的大小一个类的大小,实际上就是类中成员变量之和,但要注意内存对齐。空类的大小为一个字节,原因是编译器给了空类一个字节来唯一标识这个类。...

2020-02-23 18:26:47 113

原创 文件操作

文件操作在程序设计中,文件一般有两种:程序文件、数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境下后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据。文件名一个文件要有一个唯一的文件标识,以便用户识别和引用。文件名包含三部分:文件路径+文件名主干+文件后缀。例如:c:\code\tes...

2020-02-21 20:07:57 140

原创 动态内存管理

动态内存函数malloc和free函数malloc和free函数的头文件为stdlib.hvoid* malloc(size_t size);malloc函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc函数的返回值一定要检查返回值类型为void*,因为malloc函数并...

2020-02-21 19:41:22 106

原创 自定义类型:结构体、枚举、联合

结构体结构体的声明结构体是一些值得集合,这些值称为成员变量,结构体的每个成员可以使不同类型的变量,也可以是其他自定义类型,但是如果是自引用,那么只能用指针。typedef struct Node//重命名(类型名){ int x; struct Node* next;}Node;Node p1;//定义结构体变量Node p2 = {x. y};//定义变量的同时赋初值结构体...

2020-02-21 17:42:16 91

原创 编译链接、宏替换、条件编译

编译链接程序的编译分为4个阶段预处理:展开头文件/宏替换/去掉注释/条件编译 (test.i main.i)编译:检查语法,生成汇编语言 (test.s main.s)汇编:将汇编语言转换成机器语言 (test.o main.o)链接:链接到一起生成可执行文件 (a.out)简单的一些预处理命令:预处理命令含义...

2019-11-08 21:19:56 874

原创 str函数模拟实现

strlen函数szie_t strlen(const char* str)计算str字符串的长度注意:字符串以‘\0’为结束标志,strlen返回的是字符串中‘\0’之前的字符个数(不包括’\0’)函数返回值为size_t,是无符号的模拟实现:size_t my_strlen(const char* str){ assert(str); char* str1 = str...

2019-09-23 21:19:11 787

原创 数据的存储

整形的存储原码、反码、补码计算机中的符号数有三种表示方法,即原码、反码、补码,它们均有符号位和数值位两部分,符号位用0表示正。用1表示负,而数值位则各不相同。原码:直接将数字翻译成二进制反码:将原码符号位不变,数值位按位取反补码:反码+1就是补码正数的原、反、补码都相同对于整形来说,数据内存储的是补码,因为使用补码可以将符号位和数值位统一处理;而且加法和减法也可以统一处理(因为CPU...

2019-09-18 16:30:15 134

原创 C语言操作符要点及整形提升截断

操作符- 算术操作符 + - * / %%操作符的两个操作数必须为整数/操作符的两个操作数如果有浮点数,则执行的是浮点数除法- 移位操作符移位操作符不会改变自身的值对于移位操作符,不要移动负数位<< 左移操作符>> 右移操作符左移操作符移位规则:左边抛弃,右边补0右移操作符移位规则:1.逻辑移位 左边...

2019-09-18 14:57:16 221

原创 二叉树

树的概念及结构1.树的概念树是一种非线性的数据结构,它具有以下的特点:每个结点有零个或多 个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结 点可以分为多个不相交的子树 。节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I…等节点为叶节点非终端节点或分支节点:...

2019-07-31 17:19:40 184 1

原创 栈和队列的实现

栈的概念及结构栈:一种特殊的线性表,只允许在固定的一端进行插入和删除操作。进行数据插入删除操作的一端称为栈顶,另一端称为栈底。栈中的元素遵循先进后出(后进先出)的原则入栈:栈的插入操作叫做入栈/进栈/压栈。入数据在栈顶出栈:栈的删除操作叫做出栈。出栈也在栈顶栈的实现Stack.h#pragma once#include<stdio.h>#include<std...

2019-07-30 17:35:12 117

原创 链表的实现

链表的概念与结构链表是一种物理存储结构非连续、非顺序的存储结构,数据元素的逻辑顺序是由链表中的指针链接次序实现的实际中链表结构多样,主要分为以下几种:单向,双向循环,非循环带头,不带头最常用的有两种:无头单向非循环链表:结构简单,但实现较复杂,一般不单独存储数据带头双向循环链表:结构复杂,一般用来单独存储数据。实际中使用的链表数据结构都是带头双向循环链表,因为实现较为简单链表的实...

2019-07-30 17:03:58 239

原创 顺序表的实现

概念及结构顺序表是把数据元素存储在一段物理地址连续的存储单元上的线性结构,一般采用数组存储,增删改查等操作也在数组上完成。顺序表一般可分为:1.静态顺序表:使用定长数组存储2.动态顺序表:使用动态开辟的数组存储而静态顺序表有很大的缺陷,只适用于知道要存多少数据的情况,而且容易造成空间不足或者浪费,所以现实一般使用动态顺序表。以下是动态顺序表的实现:代码实现SList.h#pragm...

2019-07-30 15:50:35 193

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

算法效率算法效率分两种,时间效率和空间效率。时间效率就是时间复杂度,主要用来衡量一个算法的运行速度。空间效率就是空间复杂度,主要用来衡量一个算法的额外空间。在现在以及未来,计算机的存储容量已经达到了很高的程度,所以不用过多的考虑空间复杂度时间复杂度算法中基本操作的执行次数就是算法的时间复杂度。而计算时间复杂度时,并不需要精确的数值,只需要大概的执行次数,所以可以使用大O的渐进表示法:1....

2019-07-30 15:30:51 227

原创 C语言指针详解

指针是什么指针就是C语言的灵魂。学习C语言,如果没有学好指针,那就没有学好C语言最核心最重要的内容。具体来说指针就是变量,用来存放地址的变量,而地址是唯一标识一块地址空间的。所以存放在指针中的值都被当做地址处理。指针的大小指针的大小与平台有关,在32位平台上指针大小是4个字 节,在64位平台上指针大小是8个字节。那么,为什么指针的大小会与平台有关呢?首先,对于32位的机器,...

2019-05-14 20:42:23 329

原创 用C语言实现简单的计算器

功能介绍用C语言实现整形简单的加减乘除操作代码实现#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>int main(){ while (1) { double x = 0, y = 0, ret = 0;//定义运算量以及结果 char operator;/...

2019-05-10 16:32:21 26602 1

空空如也

空空如也

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

TA关注的人

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