C/C++复习笔记
m0_37717595
这个作者很懒,什么都没留下…
展开
-
C语言的内存四驱模型
一、数据类型的本质 1、数据类型可以理解为创建变量的模具,是固定内存大小的别名。 2、数据类型的作用:编译器预算对象(变量)分配内存空间大小二、void1)、void简介 void 的字面意思是“无类型”,void*则为“无类型指针”,void *可以指向任何数据类型。在c中不存在void类型的变量,因为c语言就没有定义void究竟是多大内存的别名。c语言中void有两种使用方...原创 2018-05-18 18:00:15 · 1326 阅读 · 1 评论 -
二叉树学习(一)
二叉树是数据结构中的基础,也是基础中最重要的一部分知识点,以前学过二叉树、但是对于二叉树的知识从来没有完整的整理过,秋招就要开始,将二叉树的所有知识进行整理,准备面试。一、树基础概念以及定义树是一种数据结构,它是由n(n>1)个有限节点组成的一个具有层次关系的集合。树的基本概念:1、双亲:若有一个结点有子树,那么该结点就称为子树根的“双亲”。2、孩子结点:子树的根称为改子...原创 2018-08-09 21:54:59 · 288 阅读 · 0 评论 -
二叉树学习(二)之二叉查找树
前面学习过二叉树的基本遍历与创建,今天学习二叉树中的二叉查找树,也叫二叉搜索树。一、二叉搜索树的特点1、若左子树不为空,则左子树上所有结点的值均小于它的根节点的值;多右子树不为空,则右子树上所有结点的值均大于它的根节点的值;2、二叉查找树的左右子树也是一颗二叉查找树。3、二叉查找树的中序遍历是一个升序序列。4、二叉查找树没有键值相等的节点。二、二叉查找树的创建。一、思路...原创 2018-08-15 13:12:23 · 641 阅读 · 0 评论 -
C++复习笔记(一)
以前学习自学完c++时,没有做笔记对自己的学习做一个记录,以至于自己学完c++转学完Python,在回过头来看C++发现自己还有许多地方都不是很清楚,今天开始,每天花上2个小时对自己以前的C++内容进行复习,并做好笔记记录,进行整理,以便后面再次复习。一、类的访问控制public:修饰成员变量和成员函数在类的内部和外部都可以进行访问。protected:修饰类的成员变量和成员函数只能在...原创 2018-08-17 22:06:28 · 268 阅读 · 0 评论 -
C++复习笔记(二)之运算符重载
一、运算符重载的存在于意义我们使用基础的数据类型int、 double、 float、 long 、long long 等数据类型可以进行加减乘除操作,但是复杂的数据类型我们就不能使用加减乘除进行运算了,比如类的对象,结构体等等。因此c++编译器需要给我提供一种机制,可以让我们对复杂数据类型进行一个相加减或其他的运算符操作。运算符重载可以是复杂的数据类型的运算符操作,变得简单易实现。...原创 2018-08-19 08:36:59 · 328 阅读 · 0 评论 -
C++复习笔记(三)之继承
一、继承说明1、子类拥有父类的所有成员变量和成员方法2、子类可以拥有父类没有的方法和属性3、子类就是一种特殊的父类、子类对象可以当做父类对象去使用。二、派生类的访问控制 父类成员访问级别 继 承...原创 2018-08-20 10:05:23 · 310 阅读 · 0 评论 -
C++引用
一 引用(普通引用) 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 程序中通过变量来申请并命名内存空间。 通过变量的名称我们可以使用内存空间。 那么我们对一段内存空间我们只能使用多个别名,通过多个别名对内存空间进行操作。(引用)因此我们可以将引用看做一个已定义变量的别名。引用在作为函数参数声明变量时不进行初始化。...原创 2018-08-17 19:45:30 · 157 阅读 · 0 评论 -
C++复习笔记(四)之多态实现的本质
一、多态成立的条件1、发生了类的继承。2、有virtual关键字实现虚函数重写。3、父类指针或引用指向了一个子类对象。二、多态的原理1、当类中声明虚函数时,编译器会自动在类中生成一个虚函数表。虚函数表是一个存储类成员函数指针的数据结构,且有编译器自动生成和维护。2、所有在类中使用类virtual关键字的成员方法都会被放入该类的虚函数表中。3、在定义对象时,当存在虚函数是...原创 2018-08-20 15:36:35 · 469 阅读 · 0 评论 -
C++复习笔记(五)之纯虚函数和抽象类
一、基本概念1、纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都去自己实现函数的操作。2、纯虚函数为个派生类提供类一个公共界面(接口的封装和设计、软件的模块功能的划分)3、一个具有纯虚函数的基类被称为抽象。4、纯虚函数形式: virtual 类型 函数名(参数类表) = 0;二、抽象类的几个特点...原创 2018-08-20 16:02:39 · 333 阅读 · 0 评论 -
C语言二级指针做输入的内存模型
一、二级指针做输入的第一种内存模型--指针数组#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>void PrintMyArray(char **myArray, int num){ int i = 0; for (i ...原创 2018-06-04 11:16:58 · 253 阅读 · 0 评论 -
C语言中的二级指针做输出
一、二级指针做输入与输出 做输入,主调函数分配内存,被调函数使用;做输出。被调函数分配内存,把运算的结果,以指针做函数参数甩出来。 #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>//求文件中的两段话的长度//二级指...原创 2018-06-01 20:24:47 · 2421 阅读 · 0 评论 -
c/c++中的const
一 const基础知识(用法、含义、好处)int main(){ const int a; int const b; int *const c; const int *d; const int *const e; return 0;} 第3行和第4行的意思一样 代表一个常整形数,在c中const修饰的常整型变量,其值不可以被直接修改,但是可以通过指向它的指针对它的值进行修...原创 2018-03-20 14:46:04 · 182 阅读 · 0 评论 -
浅谈c/c++中的三目运算符区别
先来看一段代码int main() { int a=10; int b=30; (a<b?a:b)=50; printf("a=%d,b=%d",a,b); return 0;} 在c编译器中上段代码会报错,打在c++编译器中不会报错。 (a<b?a:b)是一个表达式,c编译器对该表达式进行运算时,会返回该变量的值,所以...原创 2018-03-19 19:32:35 · 352 阅读 · 0 评论 -
浅谈c/c++中register关键字
在早期c语言编译器不会对代码进行优化,因此使用register关键字修饰变量是很好的补充,大大提高的速度。 register关键字请求让编译器将变量a直接放入寄存器里面,以提高读取速度,在C语言中register关键字修饰的变量不可以被取地址,但是c++中进行了优化。 c++中依然支持register关键字,但是c++编译器也有自己的优化方式,即某些变量...原创 2018-03-19 19:05:51 · 40759 阅读 · 2 评论 -
C/C++函数调用的压栈模型
函数调用的压栈模型对于我们学习C语言非常重要,最直观的体现在我们后面要学的函数的递归,函数的递归就充分利用的函数的压栈模型 当函数从入口函数main函数开始执行时,编译器会将我们操作系统的运行状态,main函数的返回地址、main的参数、mian函数中的变量、进行依次压栈;当main函数开始调用fa()函数时,编译器此时会将main函数的运行状态进行压栈...原创 2018-05-18 19:18:29 · 4775 阅读 · 1 评论 -
指针强化
一、指针强化 1、在指针声明时,*号表示所声明的变量为指针 2、在指针使用时,*号表示操作指针所指向的内存空间的值 3、指针变量和它所指向的内存块是两个不同的概念。 4、指针也是一种数据变量,占有内存空间,用来保存内存地址。 5、指针是一种数据类型,是指它指向的内存空间的数据类型。 6、指针的步长(p++),根据所指内存空间的...原创 2018-05-25 20:05:25 · 202 阅读 · 0 评论 -
字符串和一级指针模型
1、在C语言中使用字符数组来模拟字符串,C语言没有字符串数据类型。 2、C语言中的字符串是以'\0'结束的字符数组 3、C语言中的字符串可以在栈上、堆空间、或制度存储区进行分配内存。 4、strlen()求字符串的长度,字符串长度不包含'\0',sizeof(类型)字符串类型的大小时,包括了‘\0’ (一)字符串的初始化 字符串初始化有两种方法,默认元素个...原创 2018-05-25 21:38:20 · 264 阅读 · 0 评论 -
C语言字符串翻转的两种方法及对应的内存模型
第一种:指针两头堵模型#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h>#include <string.h>#include <stdio.h>int inverse(char *str1){ int length = 0; char *p1 = NULL; char *p2 = NULL;...原创 2018-06-01 18:26:05 · 12879 阅读 · 0 评论 -
C语言数组升华-数组类型-数组指针类型
一、数组的概念 从元素类型角度:数组是相同诶性的变量的有序集合。 从内存角度讲:连续的一大片的内存空间。 注: 1)数组首元素的地址和数组的地址是两个不同的概念。 -》下面代码就可说明:#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h&g...原创 2018-06-08 16:24:33 · 262 阅读 · 0 评论 -
C++复习笔记(六)之函数指针和函数模板、类模板
一、函数指针函数指针在C语言中的作用类似于c++中的多态,都是可以实现框架的搭建,代码的兼容性高。函数三要素:名称、参数、返回值C语言可以通过typedef为函数类型重命名,语法 typedef 返回值类型(类型名称)(参数列表);如下代码所示:#include<iostream>using namespace std;int func(int a, int ...原创 2018-08-21 21:41:33 · 1882 阅读 · 0 评论