自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面向对象之“类“

C++面向对象之"类"上一节讲了头文件。头文件本节正式进入面向对象的编程,类。面向过程: 根据程序执行的先后顺序,来设计所有细节缺点:开发大型项目时,会导致难把控所有的细节。面向对象: 一种全新的开发方式。文章目录C++面向对象之"类"类的基础类的默认构造函数类的拷贝构造函数"深浅"拷贝类的析构函数类的基础最重要的一个概念:“类” class类是一种特殊的“数据结构",不是一个具体的数据。和基本的数据类型不同 (char/int/float)在实现类的时候一般把类与类的方法声明

2021-05-13 22:19:43 189

原创 C/C++头文件

C/C++头文件上节我们介绍了类型定义(typedef)。C++类型定义(typedef)本节我们介绍头文件。在一个团队里面共同开发时,代码通常在不同的文件中。另外一些共通的东西,例如宏定义,类型定义等都该放到不同的文件中。什么是#include预处理指令 - 编译前包含指定文件内容到当前文件中,即使用被包含文件替换源文件中的#include指令。#include 指令有两种形式:#include <iostream> ⬅文件名包含在尖括号中<标准系统目录&g

2021-05-07 23:06:54 1168 11

原创 C++类型定义(typedef)

C++类型定义(typedef)上节我们介绍了枚举类型(enum)。C/C++枚举类型本节我们介绍类型定义。引入: 在写代码的过程中,经常会遇到使用重复的类型,这些类型名可能会很长,比如自己定义的结构体类型名,枚举类型名等等这个时候对于这种使用频率较高,长度过长就可以使用类型定义(typedef)。相当于给类型一个别名。例如上节中介绍的枚举类型:#include <iostream>using namespace std;//定义一个枚举类型enum Season

2021-05-07 21:44:22 578

原创 C/C++枚举类型

C/C++枚举类型上节我们介绍了结构体。C/C++结构体本节我们介绍枚举类型enum。概念枚举类型是C/C++语言中的一种基本数据类型,它可以用于声明一组常数。当一个变量有几个固定的取值时,可以将这个变量定义为枚举类型。可以提高代码的可读性。比如可以用一个枚举变量表示月份,因为只有12个月。也可以表示季节。类型的定义一般形式为: enum 枚举名 { 枚举元素1, 枚举元素2, …};上面的月份可以表示为 enum Month{ January, February, March,

2021-05-05 11:53:08 313

原创 C/C++结构体

C/C++结构体上节我们介绍了宏定义。C/C++之宏定义本节我们介绍结构体。定义一个学生,有学号、姓名,年龄,班级、电话等等属性,这些复杂的属性可以归为一类,而单纯的数据类型很不方便。这个时候就可以使用结构体整合在一起定义:struct 结构名{成员类型 成员名;成员类型 成员名;};例如:#include <iostream>#include <string.h>using namespace std;struct Student {

2021-05-01 23:40:34 441

原创 C/C++之宏定义

C/C++之宏定义上节我们介绍了指针函数。C/C++指针作为函数的返回值本节我们介绍宏定义。如果我们在代码中使用了大量的相同常量,并且代码长度非常的可观,那么如果我们修改这些常量会怎么样?是不是很麻烦,而且很容易出错。此时我们引入宏定义#define LENGTH 10(经常使用)#define 预处理指令LENGTH 宏10 替换体(多行可以用 \ 延续)例如:#define a "abc\ def\ ghi"注意: 变量的命名规则适用于宏作用: 提高代

2021-05-01 19:27:02 335

原创 C/C++指针作为函数的返回值

C/C++指针作为函数的返回值上节我们介绍了C/C++变量的作用域与生存周期。C/C++变量的作用域与生存周期本节我们介绍指针作为函数的返回值。指针函数返回值为一个指针(地址)先看一个小例子:#include < iostream>using namespace std;int *add(int a, int b) { int* sum = new int; *sum = a + b; return sum;}int main(){ int x =

2021-04-29 19:29:06 3394

原创 C/C++变量的作用域与生存周期

C/C++变量的作用域与生存周期上节我们介绍了四种遍历存储方式。C++变量的四种存储类型本节我们介绍作用域与生存周期。不同的存储类型有不同的作用域与生存周期:存储类别存储期作用域声明方式auto自动块块内register自动块块内,使用关键字registerstatic(局部)静态块块内,使用关键字staticstatic(全局)静态文件内部所有函数外,使用关键字staticextern静态文件外部所有函数外

2021-04-29 19:28:03 201

原创 C++变量的四种存储类型

C++变量的四种存储类型上节我们介绍了动态内存的使用。C++动态内存的分配、使用、释放以及内存泄漏本节我们介绍四种存储类型。数据类型: 如int, float, double等。在之前详细介绍过。C/C++输入与数据类型存储类型,总共有四种: 自动变量(auto),静态变量(static),外部变量(extern)以及寄存器变量(register)。auto变量函数中所有使用的非静态局部变量。#include <stdio.h> using namespace st

2021-04-26 23:48:23 1382

原创 C++动态内存的分配、使用、释放以及内存泄漏

C++动态内存的分配、使用、释放以及内存泄漏上节我们介绍了为什么要使用动态内存。C++之为什么要使用动态内存分配本节我们讲方法。在开发过程中,我们经常需要使用动态内存分配和撤销内存空间,特别是数据结构中节点的插入和删除。在C语言中是利用库函数malloc和free来分配和撤销内存空间的,C++提供了较简便而且功能较强的运算符new和delete来取代malloc和free函数。注意:new和delete不是函数,是运算符,因此效率高!为了与C兼容,C++仍然保留malloc和free

2021-04-26 23:43:41 515

原创 C++之为什么要使用动态内存分配

C++之为什么要使用动态内存分配上节我们讲了C++程序的内存分布。C++程序的内存分布本节来介绍为什么要进行内存分配。按需分配,根据需要分配内存,不浪费。内存拷贝函数void* memcpy(void* dest, const void* src, size_t n);从源src中拷贝n字节的内存到dest中。需要包含头文件#include <string.h>#include <stdio.h> #include <string.h>using

2021-04-26 22:14:44 1033 4

原创 C++程序的内存分布

C++程序的内存分布上节我们介绍了指针引用与常量引用。C++指针引用与常量引用本节我们介绍C++程序的内存分布!引入:在一个大的团体中,每个人都有每个人的职位。在C++中同样如此。栈区(stack): 由编译器管理,存放局部变量和函数参数,很小。超出大小会导致数据溢出。堆区(heap): 由程序员分配释放,随叫随到。全局/静态区(static): 全局变量和静态变量的存储是放在一起的,在程序编译时分配。文字常量区: 存放常量字符串。程序代码区: 存放函数体(包含类的成员函数、全局函

2021-04-26 22:10:40 294 2

原创 C++指针引用与常量引用

C++指针引用与常量引用上节介绍了引用的基本概念。C++引用的基本本节来介绍指针引用与常量引用。指针引用之前在讲二级指针的时候说过二级指针可以把函数中的值带出来是吧,现在用指针引用同样能够做到!定义方式:Type* &name = var也就是变量类型* &引用名 = 指针名;#include <stdio.h> using namespace std;int main(){ int a = 100; int* p = &a;

2021-04-26 10:41:57 155

原创 C++引用的基本

C++引用的基本上节花了大量的时间讲指针。C/C++之指针(下)本节我们介绍引用。引用,是C++新引进来的一种概念,C中没有。回顾变量名:变量名实质是一段连续储存空间的别名,是一个标号。程序中通过变量来申请并命名内存空间。通过变量的名字可以直接使用存储空间。概念:引用可以看作一个已定义变量的别名。语法:使用取地址符&,Type& name = var;不能这样定义: int& name;不做初始化。除非做函数的形参。使用:#inclu

2021-04-26 00:55:24 189

原创 C/C++之指针(下)

C/C++之指针(下)接上节。C/C++之指针(中)文章目录C/C++之指针(下)11、指针数组(存储指针的数组)12、数组指针和二维数组13、数组和指针的差别。14、空类型指针(区分空指针)15、函数指针(区分指针函数)11、指针数组(存储指针的数组)引入: 找出二维数组最大值与最小值所在的位置。通过指针数组来实现,就不需要定义四个变量,来确定行标和列标了。#include <iostream> using namespace std;int main() {

2021-04-24 19:42:54 129

原创 C/C++之指针(中)

C/C++之指针(中)接上节。C/C++之指针(上)文章目录C/C++之指针(中)6、指针常量7、二级指针8、二级指针的用途9、多级指针10、数组与指针的关系6、指针常量之前详细讲了常量的特点。C++两种类型的常量指针常量:(都在下面的代码中,需要仔细研究)#include <iostream> using namespace std;int main() { int a[6] = { 21, 12, 66, 44, 25, 100 }; //第一种

2021-04-24 19:40:40 546 2

原创 C/C++之指针(上)

C/C++之指针(上)上节介绍了二维数组。C/C++之二维数组本节介绍劝退大部分同学的指针!(重点)。由于比内容比较多,篇幅比较长,所以分为三个部分。本篇为上。文章目录C/C++之指针(上)1、指针的定义2、指针的访问3、空指针,坏指针4、指向数组的指针(指针的自增与自减)5、指针与指针的减法引入几个问题:之前在讲函数的时候,提到过普通变量是无法通过调用函数来改变的。例如:#include <iostream> using namespace std; vo

2021-04-24 19:36:05 183

原创 C/C++之二维数组

C/C++之二维数组上节我们分析了内联函数和递归函数的使用。C/C++之内联函数与递归函数本节我们介绍二维数组。二维数组和一维数组不同,一维数组可以比作一条直线,而二维数组就是一个平面。例子:阅兵时候的方阵,有行和列。与二维数组很类似,也有行列!也和数学中的矩阵很相似!二维数组的定义: 只需要多加一个[]运算符即可!一维数组: int a[10];二维数组: int a[10][10];二维数组的初始化定义了不初始化,二维数组里面的值是随机的。第一种:int a[3]

2021-04-23 16:04:04 461 1

原创 C/C++之内联函数与递归函数

C/C++之内联函数与递归函数上节我们介绍了栈空间的溢出。C/C++之函数的栈空间本节我们介绍另外两种函数。1、内联函数特点,比别的函数调用快!普通函数的缺点:每调用一次函数,就会为这个函数分配一个“栈”在计算机地层做很多工作(保存原来的执行环境,切换到新的执行环境),有一定时间的"开销";解决方案: 使用内联函数内联函数:(优点)当编译器在编译时,如果遇到内联函数,就会直接将整个函数体的代码插入“调用处“相当于内联函数的函数体在调用处被重写了一次,避免调用的"开销"

2021-04-22 00:59:23 629

原创 C/C++之函数的栈空间

C/C++之函数的栈空间上节我们介绍了函数的许多内容。C/C++之自定函数(内容长)本节我们介绍函数的栈空间。使用一个错误的程序进行测试:#include <iostream>using namespace std;void test(){ //运行时会因为栈帧空间溢出而崩溃 char buff[2000000]; //2M大小 cout << (int)buff[sizeof(buff) - 1] << endl;}int mai

2021-04-22 00:26:32 2008

原创 C/C++之自定函数(内容长)

C/C++之函数(内容长)上节我们介绍了循环嵌套的应用。C/C++的循环嵌套应用(暴力破解)本节我们介绍函数。文章目录C/C++之函数(内容长)1、为什么要使用函数2、函数的定义3、函数的声明4、函数参数的传递方式5、数组做函数的参数6、函数的默认参数(C语言不支持)7、函数重载(C语言不支持)1、为什么要使用函数避免重复使用相同的代码,提高开发效率例如:比较字符串,可以用循环语句比较。但是如果多处需要使用比较,可以使用函数strcmp(str1, str2);便于维护把代码功能拆开,使

2021-04-21 22:57:44 190

原创 C/C++的循环嵌套应用(暴力破解)

C/C++的循环嵌套应用(暴力破解)上节我们介绍了循环嵌套。C/C++之循环嵌套本节我们介绍应用。要求:破解(账号密码)//假设密码为数字,字母,下划线的组合。密码.exe#include <iostream>#include <string> using namespace std;int main(){ //密码 string password; cout << "请输入密码:"; while(1){ cin

2021-04-21 18:27:35 994 2

原创 C/C++之循环嵌套

C/C++之循环嵌套上节我们介绍了循环控制语句。C/C++循环控制语句本节我们介绍循环的嵌套。例子:计算1 * + 1 * 2 + 1 * 3 + …… + 1 * n + 2 * 1 + 2 * 2 + 2 * 3 + …… + 2 * n + …… m * n;使用双重循环:#include <iostream>using namespace std;int main(){ int i = 0, j = 0; int m, n; c

2021-04-21 16:58:11 534

原创 C/C++循环控制语句

C/C++循环控制语句上节我们介绍了循环语句。C/C++循环语句本节我们介绍循环控制语句。break(打破)结束本次循环(不管是否满足循环条件)。流程图:例子:#include <iostream>using namespace std;int main(){ int i = 0; int sum = 0; while(1){ sum += i++; if(i > 100){ //使用break 跳出死循环 break; } }

2021-04-21 16:43:50 213

原创 C/C++循环语句

C/C++循环语句上节介绍了switch语句,以及原理。C/C++switch语句本节介绍循环语句文章目录C/C++循环语句while循环for循环do-while循环while循环规则:while(条件){  语句}或者:while(条件){  语句}只要条件满足就会一直重复执行函数体中的语句。**建议:**无论{}中有多少条语句,都加上{};break的作用:跳出循环(一般为死循环)。死循环:一些情况下,需要重复做无数次,直到满足条件跳出。while(1

2021-04-21 09:13:56 413

原创 C/C++switch语句

C/C++switch语句上节我们讲了if语句。C/C++if语句本节我们介绍switch语句。switch语句的基本用法语法:switch(x){case 表达式1:​ 语句1​ break;case 表达式2:​ 语句2​ break;case 表达式3:​ 语句3​ break;default 表达式4:​ 语句4​ break;}例子:#include <iostream>using namespace std;/

2021-04-20 18:26:30 641

原创 C/C++if语句

C/C++if语句上节介绍了数据类型转换。C/C++数据类型的转换本节介绍if语句。if语句类型的三种形态形态1:if(条件){​ 语句}#include <iostream>using namespace std;int main(){ cout << "舅舅:你期末考试成绩多少?" << endl; int score; cin >> score; if(score < 60){

2021-04-20 17:34:36 132

原创 C/C++数据类型的转换

C/C++数据类型的转换上节我们介绍了运算符的种类以及优先级。C/C++使用多个运算符的优先级本节我们介绍数据类型转换。为什么需要"类型转换":参与运算的两个操作数的类型必须相同!类别:隐式类型转换算术转换赋值转换输出转换强制类型转换隐式类型转换算术转换(+ - * / %)char,int,long,long long,float,double例如:1.0 / 2 => 1.0 / 2.0 = 0.512 + 0.5 => 12.0 + 0.5 =

2021-04-20 17:07:17 186

原创 C/C++使用多个运算符的优先级

C/C++使用多个运算符的优先级上节讲了位运算。C/C++操作硬件的位运算本节介绍运算符优先级。文章目录C/C++使用多个运算符的优先级算术运算赋值运算复合赋值运算自增自减运算符逗号运算符三目运算符运算符的优先级算术运算+加x = 5 + 2-减x = 5 - 2*****乘x = 5 * 2/除x = 5 / 21.两个整数相除,结果取整数部分2.除数不能为0(0.0也不可)%取余x = 5 % 2结果为1只有整数和char类型

2021-04-20 16:42:48 337

原创 C/C++操作硬件的位运算

C/C++操作硬件的位运算上节我们讲了逻辑运算符。本节我们讲位运算。一般用于处理硬件。把地址0x80040的寄存器的最低四位设置成0110使用位运算符:&, |,~,^,<<,>>(位与,位或,位非,异或,左移,右移)什么是位:一个字节8位,内存一个字节一个字节的排列。位与 &0 & 0 00 & 1 01 & 0 01 & 1 1对应位,都是1结果才是

2021-04-20 01:10:41 327

原创 C、C++用于综合决策的逻辑运算(两个变量)

C/C++用于综合决策的逻辑运算(两个变量)上节我们介绍了C语言字符串的比较。C语言字符串的比较本节我们介绍逻辑运算。逻辑与 &&aba && b真真真真假假假真假假假假a,b都为真,逻辑才为真。只要有一个为假,逻辑就为假相当于而且使用场景:当需要两个条件都满足时,就用&&注意:条件1 && 条件2当条件1为真时,才会去判断条件2当条件1为假时,

2021-04-20 00:25:03 195

原创 C语言字符串的比较

C语言字符串的比较(顺便讲下其他数据的比较)上节我们介绍了表示真假的bool类型。本节我们讲一下C语言字符串的比较。之前我们讲过C++字符串的比较方式,很简单,使用比较运算符直接进行比较就行< <= > >= == !=比较C语言字符串的比较方式: 比较规则与C++的比较规则一致,都是比较对应字符的ASCII码值大小需要包含头文件string.h并且使用strcmp()函数进行比较。#include <string.h>int strcm

2021-04-19 23:54:42 5485

原创 表示真假的bool类型

表示真假的bool类型上节我们讲了C语言字符串相关的类容。C语言字符串的储存、初始化、输出与输入本节我们介绍bool类型的变量。使用方式: 在C++中,bool(布尔)类型有两种表示方式(表示逻辑)直接使用bool类型bool x = true;bool类型只有两个值,true(真)和false(假)。使用0和非0的任何值(C语言风格)0: 表示假非0: 表示真例子:1 > 3 是假, 结果为false1 == 1 是真, 结果为

2021-04-19 23:19:29 1961

原创 C语言字符串的储存、初始化、输出与输入

C语言字符串的储存、初始化、输出与输入上节讲了数组的相关内容。C/C++数组本节介绍C语言的字符串。为什么要讲C语言的字符串。C语言的字符串也就是char类型的数组,在开发过程中经常使用。区别: "laowang";C:”laowang\0"C++: "laowang"C语言比C++多了个结束符'\0';初始化:#include <iostream>#include <string>using namespace std;int main

2021-04-19 23:18:35 644

原创 C/C++数组

C/C++数组上节介绍了C++的字符串string很多要点。C++字符串本节对上节出现的C语言数组进行介绍。数组的概念什么是数组?上节末尾,介绍C语言的字符串时定义了一个char name[32];这便是char类型的数组如同储物柜一样,有很多的盒子,有对应的编号,且编号递增的。C/C++的数组有相同大小的盒子组成 -->内存块,即相同的数据类型盒子有编号–>从0开始递增。数组的定义:例子:int a[10];//定义一个数组,包含10个元素,每个元素都必须

2021-04-19 00:34:39 468

原创 C++字符串

C++字符串上节我们讲了两种类型的常量。C++两种类型的常量本节我们介绍关健的字符串。本节较长,可使用目录跳过:目录C++字符串string变量的定义、初始化string变量的输入和输出string变量输入一行string字符串的比较string字符串的加法C语言字符串简介什么是字符串: 字符串就是0个或者多个“字符”组成的“有序”序列由字符组成:例如“man”,“woman”等按照特定顺序组成的。字符串长度:字符串包含的字符个数(英文字符)“”是空字符串常量,没有一个字符,长度为0“

2021-04-18 23:24:53 306 1

原创 C++两种类型的常量

C++两种类型的常量上节介绍了C++的输入。C++的数据输入本节介绍两种类型的常量。1、字面常量int类型的字面常量:1、2、3、100等long类型的字面常量:200L(或200l,建议加大写的L)注意: 使用vs编译时,默认都是win32平台,所以即使在64位系统中,long也只有四字节。long long类型的字面常量:100000000000LL,一千亿,使用两个L。char类型的字面常量:‘a’,‘b’,‘A’,’-'等float 类型的字面常量:3.1

2021-04-18 13:58:20 878

原创 C++的数据输入

C++的数据输入上节介绍了浮点型变量的输出控制。C/C++浮点类型数据的输出控制本节介绍C++数据输入特点。数据输入过程:keyboard(键盘)输入并按回车->键盘缓冲区->cin->变量。注意: 当输入缓冲区为空时,程序才会暂停,让用户输入数据。输入回车后,数据全部输入到缓冲区。通过一个实例来讲输入:int main(void) { /*std::cout << "1.网站404攻击" << std::endl; std::cou

2021-04-18 08:23:40 827

原创 C/C++浮点类型数据的输出控制

C/C++浮点类型数据的输出控制上节我们介绍了浮点类型。C/C++变量之浮点型变量本节我们介绍浮点类型数据的输出控制。大家看下面这段代码:#include <iostream>using namespace std;int main(){ double value = 12.345678901; //默认情况下打印 cout << "value:" << value << endl;}输出结果:valu

2021-04-18 08:22:36 673

原创 C/C++变量之浮点型变量

C/C++变量之浮点型变量上节介绍了char型的特点。C/C++变量之表示单个字符的数据类型本节介绍浮点型,即小数。1、float类型float类型(单精度浮点类型)用来存储带小数部分的数据。内存中占四个字节。表示范围:-3.4 * 1038~+3.4 * 1038 (不需要记忆);**精度:**最长7位有效数字(指7位10进制位)。如:float y = 1.123456789;//精度只能取到1.1234568,即从小数点后第6位开始四舍五入。存储方式:符号位:

2021-04-18 08:21:11 4323

空空如也

空空如也

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

TA关注的人

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