C/C++
C和C++基础知识的系统梳理
会敲代码的地质汪
这个作者很懒,什么都没留下…
展开
-
C++目录
C++目录1. 布尔类型、函数重载-内联-缺省-、new-delete2. 命名空间3. 面向对象与面向过程、类和对象、this指针4. 构造析构函数5.友元函数、运算符重载6.拷贝构造、类的静态成员7. 类的继承8. 类的多态9. 文件I/O10. C++异常处理11. C++11新标准...原创 2019-12-09 21:48:27 · 651 阅读 · 0 评论 -
C目录
1.VS安装之后缺少win32解决方案解决办法2.用VS创建一个C++工程3.VS字体设置、背景设置及常用快捷键4.流程图介绍5.发布exe程序、给程序设置图标、常见system命令、一个工程中创建多个项目6.C语言数据类型、sql数据类型、标识符命名规范7.进制概要、转换、几种计算机码、win10程序员面板8.图形库下载、使用方式9.数据类型补充10.二进制补充11.运算符优...原创 2019-12-08 22:08:39 · 425 阅读 · 0 评论 -
C语言_存储类别、连接和内存管理
文章目录0. 前言1. 存储类别1.1 作用域1.1.1 块作用域1.1.2 函数作用域(function scope)1.1.3 函数原型作用域(function protoype scope)1.1.4 文件作用域(file scope)1.2 链接1.3 存储期(变量生存周期)1.3.1 静态存储期:1.3.2 线程存储期:1.3.3 自动存储期1.3.4 动态分配存储区1.4 自动变量1....原创 2020-01-13 17:04:39 · 994 阅读 · 1 评论 -
C语言_位运算2
文章目录0.写在前面2. C位运算符2.3 位移运算符2.3.1 左移运算符:`<<`2.3.2 右移运算符:`>>`2.4 位移运算符使用场景2.4.1 乘除法应用2.4.2 其它应用x.编程实例x.1 例题1:0.写在前面本博文为C语言_运算符1的继续,因此其编号顺序继承自原博文2. C位运算符2.3 位移运算符位移运算符包括左移动<<运算符 和 ...原创 2020-01-12 20:12:26 · 916 阅读 · 0 评论 -
C语言_位运算1
文章目录0.引入0.1 位运算的应用方向0.2 二进制数、位和字节0.2.1 二进制整数0.2.2 有符号整数0.2.3 二进制浮点数1. 其它进制数2. C按位运算符2.1 按位逻辑运算符2.1.1 二进制反码或按位取反:`~`2.1.2 按位与:`&`0.引入0.1 位运算的应用方向想硬件设备发送一两个字节来控制这些设备,其中每个位(bit)都有特定含义与文件相关的操作系统信...原创 2020-01-12 15:09:07 · 1305 阅读 · 0 评论 -
C语言_structut关键字
文章目录0. 引入1. 结构体基础1.1 建立结构声明1.2 定义结构变量1.4 初始化一个结构1.5 访问结构成员1.6 指定结构的初始化项目2. 结构数组2.1 声明一个结构数组2.2 标识结构数组成员3. 指向结构的指针3.1 声明和初始化结构指针3.2 使用指针访问成员4. 向函数传递结构体信息4.1 通过成员变量方式传递结构成员4.2 通过指针传入结构体4.2 将结构作为参数传递0. ...原创 2020-01-04 21:36:08 · 616 阅读 · 2 评论 -
C语言_const使用方法
const声明数组,数组值不能被修改const int days[12]={31,28,31,30};const声明指针,指针不能用于改变其指向的值double rates[5]={88.99, 100.12, 59.45};const double* ptr=rates;ptr[2]=222.22;//不可以ptr++ //可以,因为没有修改指向的值,只是修改了指向的下一个地址co...原创 2019-12-29 19:18:14 · 570 阅读 · 0 评论 -
C语言_指针总结
0. 指针基础指针: 指针(pointer)是一个值为内存地址的变量(或数据对象)0.x 如何把指针作为函数参数使用创建并声明指针变量int val=1;int* ptr;//声明指针变量为 int型ptr=&val;//指针ptr指向val的地址0.x 间接运算符(indirection operator) *间接运算符也称为解引用运算符(dereferencing op...原创 2019-12-29 15:49:01 · 651 阅读 · 1 评论 -
C初级_文件操作
1.文件操作流程写在前面:文件操作指的是程序对计算机内文件进行的读写,要同程序对屏幕的读取和写入相区分1.1 进行一次文件操作的格式代码FILE* fp; //定义一个文件指针fp=fopen("文件位置","文件打开方式"); //用文件指针打开文件if (fp == NULL) //判断文件是否存在{ printf("文件打开失败"); return;...原创 2019-12-09 21:26:51 · 452 阅读 · 0 评论 -
C++_类的常量成员
一、关于C++的四个强转格式:类型(变量、表达式、值)(C语言的强转方式C++适用,但是C++的强转C语言不适用)1.static_cast格式:static_cast<类型1>(值);说明:值将会转换成类型1的类型static_cast不做任何检查2.const_cast格式:const_cast<类型2>(值);说明:co...原创 2019-05-29 16:20:33 · 2625 阅读 · 0 评论 -
C++_函数-指针
函数指针函数指针的好处在于可以减少一部分代码函数指针在函数参数中的写法见void bulleSort函数第三个参数, **即 bool (*pfun)(int x, in y) **函数指针的使用方式见bulleSort函数if语句内,此处表示使用提前定义的bool函数函数指针的传参方式见主函数,调用bulleSort函数时,其函数内第三个参数此时决定了bulleSort函数使...原创 2019-05-29 16:15:28 · 250 阅读 · 0 评论 -
C++_模板
模板(写和类型无关的代码,将类型作为参数传递进入)关键字: template函数模板:自定义的函数模板模板函数:根据传入的参数确定的函数(两者区别见图)类模板:类模板成员函数类外实现 必须放在同一个.h文件下,否则报错代码实例.h文件#pragma oncetemplate<class T>//本质上是动态数组class myVector{ ...原创 2019-05-27 10:38:44 · 253 阅读 · 1 评论 -
C++_C++11新标准
/*C ++11 新标准1.变量初始化新方式:int a(10) int a{10} 都表示 a=02.NULL C语言的空,C++ 中 nullptr 表示空,实际是一个 void* 类型 用法同C语言一样,但因为类型的存在更安全3.auto-自适应类型: 可以根据赋值而赋类型,因此定义变量的时候必须赋值常用语一些类型比较复杂的变量定义4.decltype-用...原创 2019-05-19 12:21:31 · 1067 阅读 · 0 评论 -
C++_异常处理
复习-文件操作流程:step1.头文件要写fstream#includestep2.定义一个file对象fstream file; char arr[100];step3.判断文件是否打开if(file.is_open()){判断是否有文件,是继续,否退出}step4.1 get put函数for(int i=0;i<strlen(arr);++i){file...原创 2019-05-19 12:11:49 · 228 阅读 · 0 评论 -
C++_I/O流
复习对于虚函数,父类无法直接访问子类的新定义成员,但是可以通过子类成员函数内部简介使用子类成员I\O流:文件流:C++的文件打开方式:ios::in 读取ios::out 写入(如果文件不存在,可以自动创建,且打开之后清空原内容)ios::app 追加ios::binary 二进制(为什么 in 表示读取,out表示写入,是以程序而言,相间附图 inout含义解释)文件打...原创 2019-05-16 12:12:15 · 264 阅读 · 0 评论 -
C++_多态
说明:函数调用的本质——通过函数名和参数调用对于类对象中函数的使用,由于对象的地址作为一个参数而传递进其内部的成员函数中,故而自带this指针父类指针可以指向子类对象,但是只能访问子类继承自父类的成员子类重写父类的虚函数,实际上是重写了父类中虚函数表中某个成员函数的地址如果父类存在虚函数,那么建议析构函数声明为虚析构多态:(函数多态相当于函数重载)实现方式:...原创 2019-05-16 11:23:57 · 191 阅读 · 1 评论 -
C++ _继承
什么是继承:在原有类的基础上创建一个具有新特性的类子类继承父类成员的访问权限说明父类的私有成员在子类中不可以直接访问附表只能说明父类成员访问权限在子类中的变化父类子类的构造:父类的构造析构不能用于子类(如果子类需要父类的构造、析构,需要重写)子类的构造函数必须调用父类的构造函数(因为子类继承自父类的成员,那么初始化交给父类的构造函数)如果没有显示调用,那...原创 2019-05-10 11:20:44 · 169 阅读 · 0 评论 -
C++_拷贝构造
复习构造函数用来给变量赋初值拷贝构造:定义: 用同类的对象给新的对象赋初值的过程说明:在定义一个类之后,编译器会自动补全三个(构造、拷贝、析构)函数在没有自己定义的情况下,编译器会直接拷贝——浅拷贝但是在涉及到指针操作的情况下就要自己定义拷贝——深拷贝(代码见student.cpp中student::student(conststudent& other):...原创 2019-05-09 11:22:42 · 274 阅读 · 0 评论 -
C初级_补充
1. 格式占位符梳理原创 2019-05-06 17:53:58 · 141 阅读 · 0 评论 -
C++_运算符重载
1. 友元函数:作用:可以在函数外部直接访问私有成员,但是友元破坏封装性格式:(类内)friend 函数类型 函数名(参数列表);(类外)函数类型 函数名(参数列表){函数体};说明:友元不属于成员函数,在类外实现时不需要加上类解析(A::)没有this指针,不受访问权限的控制友元类:格式:class 类名1{friend class 类名2...原创 2019-05-05 18:15:28 · 236 阅读 · 0 评论 -
C++_构造析构函数
构造函数(构造器)作用:给类中的成员初始化说明:构造函数的函数名与类名相同可以有参数,但是没有返回值类型可以重载,可以缺省没有返回值类型,但是有参数定义对象的时候自动调用,且一生中只调用一次构造给成员赋初值的操作还可以直接在类函数头进行(见代码)const int x; 等价于 int const x;初始化形参列表:格式:类名::...原创 2019-05-05 17:57:48 · 326 阅读 · 2 评论 -
C++_类和对象
1.复习-命名空间的3种表达方式0.定义一个命名空间格式:namespace name{成员;}3种表达方式1.using namespace name;name::xxx;2.using name::xxx;3.语句中 name::xxx(后接操作);2.面向对象与面向过程的区别面向对象面向的是一件件事情的连续;面向过程是对所解决问题数据主体的操作什么是接口?(初...原创 2019-05-05 17:50:04 · 174 阅读 · 0 评论 -
C++ _命名空间
1.说明:c语言不允许函数重名命名空间存在的作用:区分函数如果命名空间重复会合并成一个全局变量 static修饰 表示这个变量不能被其它文件使用变量 extern修饰表示可以在不同文件内使用2.命名空间:using namespace std;的含义:std就像一个名为std的箱子,std箱子里装有若干函数、语句、常量等使用std的作用在于可以避免一些函数的重命名问题关键字:...原创 2019-04-20 22:15:59 · 221 阅读 · 1 评论 -
C++_从C到C++
1.写在前面 stdio.y=strand(标准)、io=input&&output iostream=input and output stream(流) cout=printf endl=\n (C语言里也有C++不包含的东西)2.正文内容2.1新类型2.1.1布尔类型:格式:bool 变量名=ture;bool 变量名=fause;(这里bool的实...原创 2019-04-19 12:02:21 · 382 阅读 · 1 评论 -
C初级_预处理
1.宏定义作用:用自定义的字符替换一些文本格式:#define 自定义名(大写) 目标替换文本说明:宏定义时不用 ;宏定义时不用数字带参宏:(类似函数)格式:#define ADD(a,b) a+b说明:带参宏只适用于一些简单的操作(不能有循环、递归……)直接替换可能导致代码变长,导致代码区冗胀好处在于,简单的函数用宏替换可以节省函数与函数之间的跳转时间先替换然后计算,要注...原创 2019-03-27 10:24:29 · 122 阅读 · 0 评论 -
C初级_结构体-联合-枚举
1.结构体1.1结构体的定义与相关使用:**作用:**用来存放一组不同变量类型的数据关键字: struct定义格式: struct 变量名{变量内容};. 运算符使用方式: 结构体变量名.成员->运算符使用方式: 结构体变量名->成员(指针与结构体成员联合使用的专有预算符)**结构体数组使用方式:**结构体名 数组变量名1.2给结构体变量取别名别名定义格式 typ...原创 2019-03-24 20:52:41 · 322 阅读 · 0 评论 -
指针3_数组-指针
1.指针数组和数组指针2.指针常量和常量指针3.指针函数和函数指针4.说明5.代码实例原创 2019-03-24 17:36:31 · 246 阅读 · 0 评论 -
C初级_指针2
在函数传参所做的形参是数组的时候,数组的传递过程实际是传递的数组首地址sizeof 的作用是求的一个参数的字节大小因此sizeof(数组)实际求的指针地址的字节大小指针的另一个作用是申请堆内存,因此你本文讲主要内容为——内存四区内存四区:代码区、全局静态常量区、栈区、堆区1.代码区代码区存放代码二进制,因此不是程序猿关注的重点2.全局静态常量区全局静态常量包括:全局静态区 全局常量...原创 2019-03-16 11:22:35 · 174 阅读 · 0 评论 -
C初级_函数、分支、循环、图形库复习
1.扫雷游戏规则本次扫雷游戏规则及要求为,要求绘制500*500的地图,共100个格子。要求在这100个格子里随机分布10个雷,在初始状态下,玩家见到全部被方块覆盖的地图。鼠标左键一次,如果按到雷则提示游戏结束,如果非雷,则显示这个点显示四周(包括对角)的雷的数量;鼠标右键用来标记该地点可能有雷的存在,再次点击旗子则撤销旗子。游戏胜利为全部点完全部数无雷区域,游戏结束标志为点到雷。(上述规则即...原创 2019-03-15 17:06:09 · 4800 阅读 · 1 评论 -
C初级_指针
1.递归复习(递归就是一层层的进行计算)例如 求 123……*n 的值int fun(int n){ if(n&amp;amp;amp;amp;amp;amp;lt;=1) return 1; else return fun(n-1)*n;}2.指针1.内存地址和指针地址:变量在内存中的位置地址说明:通过地址可以访问和修改变量变量在内存中存放的地址是随机的,但是连续的几个变量在内存中的地址是连续的变量的地址实际上...原创 2019-03-14 21:26:50 · 388 阅读 · 0 评论 -
C初级_随机数
1.真随机数与伪随机数随机数:随机数就是非人为的随机发生的一个数真随机数:按照随机现象发生的数,为真随机数,该数理论上认为不具有规律伪随机数:计算机系统按照一定方式生成的,在较大范围内不重复的随机数2.创建随机数随机数函数,rand()表示生成一个随机数,其常与srand()固定搭配,且需要头文件 stdlib.h2.1 创建一个固定的随机数int n;n=rand();表示生...原创 2019-03-12 09:56:34 · 393 阅读 · 0 评论 -
C初级_函数2
1. 主函数的参数及用法1.1 主函数参数也称作命令行参数eg int main(int argc,char* argv[])argc argv 都是主函数的参数1.2 主函数参数的使用方式(注意第一个文件路径必须是exe路径)可以把文件移动到exe程序上可以直接运行可以win+R 复制exe文件位置 然后输入参数2. 作用域和变量生命周期2.1 作用域2.2 变量生命周期...原创 2019-03-10 12:32:08 · 520 阅读 · 0 评论 -
C初级_函数
1.函数相关内容1.1 函数说明特点:函数在使用的时候不需要考虑具体的实现过程程序组成基本单位——函数函数是为了实现某个功能/目的/任务的语句集合封装了一系列函数的称为——库所有的函数,执行时从主函数开始执行1.2. 三种典型的函数1.scanf-----执行输入的作用,会把输入的值赋值给变量2.circle----执行画圆的作用,会把输入的值以圆的形式显示出来...原创 2019-03-07 09:57:14 · 206 阅读 · 0 评论 -
C初级_字符与字符串
1.什么是字符串1.1 定义 ASCII码表中的所有字符任意组合,形成字符串1.2 其它说明一个中文汉字表示两个字符字符串用 “ ” 括起来同样地,字符串也可以定义成字符数组的形式存放任何字符串,末尾存在隐藏的\0;反斜杠0后面的内容系统认为不存在,反斜杠0不计算在字符串长度内2.字符串的输入输出2.1 字符串的专有输入输出函数字符串的输入用gets_s(变量名,长度)...原创 2019-03-06 10:21:46 · 232 阅读 · 1 评论 -
C初级_数组
1. 一维数组定义和使用1.1 一维数组的定义格式:类型名 变量名[数组大小];1.2 二维数组的定义格式:类型名 变量名[数组大小][数组大小];2. 数组与循环的搭配1.1 实例展示之斐波那契数列斐波那锲数列形如:1 1 2 3 5 8 13 21(代码输出斐波那锲数列请见代码,该实例用于练习一维数组与循环的搭配)1.2 实例展示之杨辉三角杨辉三角形如3. 数组及搭配使用...原创 2019-03-04 10:00:17 · 285 阅读 · 1 评论 -
C初级_循环结构
1.while结构1.1格式while(条件) { 语句 }2.for结构2.1格式for(初始语句;条件;自增自减语句) { 语句 }2.2for循环执行过程初始语句,判断条件是否成立,如果成立执行语句,进行自增自减运行 -&amp;amp;amp;amp;amp;gt;一次循环结束判断条件是否成立,如果成立执行语句,进行自增自减运行 -&amp;amp;amp;amp;amp原创 2019-02-28 14:39:32 · 321 阅读 · 0 评论 -
C初级_分支结构
1. if语句1.1 if语句的三种写法1.1.1 if语句的基本写法if(条件){语句}else{语句}1.1.2 if语句的嵌套写法1-if(条件){ 2-if(条件) { 3-if(条件) {语句} 3-else{语句} } 2-else {语句}}1-else{语句}1.1.3 if语句的else if 写法if(条件){语句}else i...原创 2019-02-26 20:53:20 · 218 阅读 · 1 评论 -
预科班_运算符优先级
运算符的范畴运算符是基本运算所涉及到的符号(C语言中常用的运算符见附表)常用的运算符说明关系运算符 &amp;amp;amp;lt; &amp;amp;amp;lt;= &amp;amp;amp;gt; &amp;amp;amp;gt;= == !=1.1 用于比较两个数据的大小,得到比价结果(0则为假,1则为真)1.2 注意区别 “一个=” 与 “两个=” :一个= 表示赋值(将等号右边的数值赋值给等号左边),两个原创 2019-02-24 11:45:12 · 415 阅读 · 0 评论 -
C初级_二进制
说明此篇内容是前面内容预科班_二进制的理解强化正文数据在内存中以二进制的形式存储一位二进制位是一个比特bite(01011111,一个数字就是一个比特)内存的基本单位是字节byte1byt=8bit 1k=1024byt 1M=1024k 1g=1024M在32位编译器下char->1byte int-> 4byte float->4byte double-&g...原创 2019-02-21 15:16:38 · 249 阅读 · 2 评论 -
C初级_数据类型
说明以下内容已经详细整理数据类型及变量命名方法数据类型及变量命名方法重点内容常见数据类型:int float double charint 如果超过十位则会超出存储范围,其它几个类型一般不会超出范围1byte=8bite(1字节=8比特)变量命名方法:驼峰法(ipadMini)输入输出格式(以代码形式展示)#include&amp;lt;stdio.h&amp;gt;#include&amp;...原创 2019-02-19 17:12:48 · 169 阅读 · 0 评论