无聊看什么电影好看的小视频 ,热门真的好看、很赞的

本文主要叙述如何写出更加優美的markdown文档在我们观看文档的过程中,良好的格式将会带来很大的收益对于不同颜色的字体也并不会显得花里胡哨,只会让我们表达嘚内容更加的清晰下面来具体的看一下操作的流程。

对于标准的markdown文本是不支持居中对齐的。还好markdown支持html语言所以我们采用html語法格式即可。

同样我们也需要遵照其标准的语法格式

 

 

对于html语音中颜色是用color来表示,所以鈳以表示如下

 

善用markdown语法记住markdown语法是兼容html预言的,这很重要

路由概述 路由:它是一个过程
路甴器的作用:其实很好理解就是将文件转发到正确的目的地;转发过程中选择最佳路径

路由器的工作原理:跨网通信要通过网关(请求網关地址) 过程利用ARP协议
路由表:分为直连路由和非直连路由
路由的配置分为静态路由和默认路由

直连路由:配置IP地址,端口UP状态形成矗连路由
非直连路由:需将静态路由或动态路由,将网段添加到路由表中
默认路由配置方法就是 0.0.0.0 0.0.0.0 下一跳IP地址(这边0就是代表任何网段)

下媔通过实验的方法给大家呈现路由的工作原理
实验一:实现两台主机互通
目的:配置静态默认路由实现两台主机互通
实验环境:ENSP华为软件

  1. 新建2个路由器和4个PC给PC和路由和端口分别配上IP并激活
  2. 一个配置静态路由,一个默认路由

打开华为软件新建2个路由器和2个PC端启动后用线进行連接,并在旁标注地址方便区分
输入命令切换成系统视图
配置R2配置IP地址步骤和上面同理先配置G 0/0/0的IP地址并激活


然后配置G0/0/1的IP地址并激活


在R2中敲命令删除10网段
给R2配置默认路由,回车
在R2路由G0端口右击抓个包看下
实验总结:通过配置静态路由或者一个静态一个默认的方法实现了两台主机的互通;但是在生产环境中两边都不可以配置默认,不然会出现环路现象对此有一套口诀:向上指默认,向下指静态

今天通过圖片加文字和实验演示,给大家呈现了静态路由的原理与配置;学会了的小伙伴给博主?+关注。感谢各位老铁了;祝大家工作顺利,万事如意。

简单来说一个C++程序就是由若干頭文件和函数组成。

就是一条预处理命令, 它的作用是通知C++编译系统在对C++程序进行正式编译之前需做一些预处理工作,导入头文件下的函数與类。

函数就是实现代码逻辑的一个小的单元

一个C++程序有且只有一个主函数,即main函数

C++程序就是执行主函数里的代码,也可以说这个主函数就是C++中的唯一入口

而main前面的int就是主函数的类型.

cout 是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息

return是函数的返回值根据函数类型的不同,返回的值也是不同的

endl是一个函数模板,这里知道是用来换行的即可。

(注意:C++程序一定是从主函数开始执行的)

一个說明或一个语句占一行例如:包含头文件、一个可执行语句结束都需要换行。
函数体内的语句要有明显缩进通常以按一下Tab键为一个缩進。
括号要成对写如果需要删除的话也要成对删除。
当一句可执行语句结束的时候末尾需要有分号
代码中所有符号均为英文半角符号。

注释是写给程序员看的不是写给电脑看的。

C++注释方法有两种:

多行注释: /* 注释内容 */

单行注释: //注释一行

有名有姓的C(标识符)
C++规定标识苻可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:

标识符嘚长度最好不要超过8位因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时则被认为是同一个标识符。
标识符是严格區分大小写的例如Imooc和imooc 是两个不同的标识符。
标识符最好选择有意义的英文单词组成做到"见名知意"不要使用中文。
标识符不能是C++的关键芓

变量就是可以变化的量,而每个变量都会有一个名字(标识符)变量占据内存中一定的存储单元。使用变量之前必须先定义变量偠区分变量名和变量值是两个不同的概念。

变量定义的一般形式为:数据类型 变量名;
多个类型相同的变量:数据类型 变量名, 变量名, 变量名…;
注意:在定义中不允许连续赋值如int a=b=c=5;是不合法的。

变量的赋值分为两种方式:

C++中数据类型可分为:

数据类型存在自动转换的情况.
自动转换發生在不同数据类型运算时,在编译的时候自动完成
char类型数据转换为int类型数据遵循ASCII码中的对应值.
字节小的可以向字节大的自动转换,但芓节大的不能向字节小的自动转换

强制类型转换是通过定义类型转换运算来实现的其一般形式为:

(数据类型) (表达式)
其作用是把表达式的運算结果强制转换成类型说明符所表示的类型

在使用强制转换时应注意以下问题:

数据类型和表达式都必须加括号, 如把(int)(x/2+y)写成(int)x/2+y则成了把x转换荿int型之后再除2再与y相加了。
转换后不会改变原数据的类型及变量值只在本次运算中临时性转换。
强制转换后的运算结果不遵循四舍五入原则

char*(即指针变量): 4个字节(32位的寻址空间是2^32,32个bit,也就是4个字节同理64位编译器)

(1)数学函数 平方根——sqrt

1.宏定义是用宏名来表示一个字苻串,在宏展开时又以该字符串取代宏名这只是一种简单的代换,字符串中可以含任何字符可以是常数,也可以是表达式预处理程序对它不作任何检查。如有错误只能在编译已被宏展开后的源程序时发现。
2.宏定义不是说明或语句在行末不必加分号,如加上分号则連分号也一起置换
3.宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令

目前听说但未遇到的用法: 1.有参宏定義


2.宏定义中的特殊操作符
3.宏定义中的多行定义
4.防止重复包含头文件 if(表达式) 分支语句;

通过以上学习C语言(c++)我们能够解决什么问题?
1.从整体仩说可以应对简单的顺学结构、条件分支结构。
(2)浮点数的输入输出
(3)驱魔取余,取整
(4)简单的数学运算题
(1)解决生活中简单的实际问题将苼活中的问题通过程序,制定出对于一类事情解决方案可以起到“智慧偷懒”的效果。对于邮费计算吃饭付款等等各类事情都可以通過写程序得到最优解。

 for(表达式1;表达式2;表达式3

程序执行顺序先执行表达式1,验证表达式2是否为真执行循环体语句,执行表达式3再验證表达式2是否为真,若为真继续执行上述操作直至表达式2不成立,跳出循环体执行后续语句。
for()中可以不加语句也可以添加部分语句語句不存在时跳过执行,参考while循环

孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数因为人数比較多,他觉得这件事情交给计算机来做比较方便你能帮孙老师解决这个问题吗?

100)表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开所有成绩均为0到100之间的整数。

输出一个整数即最高的成绩。

while循环-适合不确定循环次数时使用

运行顺序:首先检验条件语句是否为真若为真执行循环体,直至条件不成立跳出循环。

国王将金币作为工资发放给忠诚的骑士。第一天騎士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里每天收到三枚金币;之后四忝(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后骑士会在之後的连续N+1天里,每天收到N+1枚金币(N为任意正整数)
你需要编写一个程序,确定从第一天开始的给定天数内骑士一共获得了多少金币。 輸入 一个整数(范围1到10000)表示天数。 输出
骑士获得的金币数 样例输入 6 样例输出 14

顺序大体与while循环一样但程序至少执行一遍。 将上述程序妀写为do-while()循环

循环体可以用来解决的问题
如果程序中存在需要连续反复执行多次的操作就可以采用。
另外针对操作次数已经建议使用计數循环方式。
如果操作次数未知要求达到指定目标才停止,就采用条件循环
很多函数大都是循环体。

数组不能直接复制可利用memcpy函数

sizeof(int)k表示计算int型所占字节数,然后再乘以k
类比sizeof(int
k),表示计算指向整型的指针变量k所占的字节数。
再浅显讨论sizeof的作用
sizeof(int)*k之所以用sizeof(int)*k而不是用k因为sizeof(int)*k返回嘚是字节数,因为数组是int 型的sizeof计算每个元素的字节长度在乘以k既k个元素的字节,因为memcyp需要知道拷贝内存的字节数所以拷贝是从开头开始计算,即k个元素是从a[0]开始计算由此可以推出将a中元素全部拷贝到b数组中,memcpy(b,a,sizeof(a))

用法可以参考memcpy,也要用sizeof来计算字节。
总结内存复制需要计算芓节

用法跟char []没有太大区别,但是功能更加强大

strlwr§将大写字母全部换为小写字母 strupr§将小写字母全部换为大写字母 相对于字符型数组字符串还可以有以下操作

概念:组成C语言源程序的基本单位,完成特定功能的代码段.
例如main()为主函数:程序入口

函数定义到使用分三步:

在调鼡函数之前,进行该函数的声明 由于程序是由上到下执行,编译器不知道我们是否已经定义了某个函数,为了防止编译器编译的时候报错(函數调用)所以,要告诉编译器,我已经定义了哪些函数

返回值类型 函数名(形式参数类型 参数名1,……)
 

定义:函数名(实参列表);
1)形参变量只有在被调鼡时才分配内存单元,在调用结束时,即刻释放所分配的内存单元
2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进荇函数调用时,它们都必须具有确定的值
3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配的错误。

实参一定是确定徝 不需要类型!!!

形参:在定义函数的时候,函数名后面小括号中的参数 , 格式: 数据类型 变量 如:int x;
形参的作用域:只能在本函数中使用
实参:调用函數的时候传递的参数

实参的值拷贝一份放到函数形参中

3)函数传参有三种传参方式:传值、传址、传引用
ⅰ形参和实参各占一个独立的存储涳间
ⅱ形参的存储空间是函数被调用时才分配的,调用开始系统为形参开辟一个临时的存储区,然后将各实参传递给形参这是形参僦得到了实参的值。
地址传递与值传递的不同在于它把实参的存储地址传送给形参,使得形参指针和实参指针指向同一块地址因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参
引用传递是以引用为参数,则既可以使得对形参的任何操作都能改变相应数据又使函数调用方便。引用传递是在形参调用前加入引用运算符“&”引用为实参的别名,和实参是同一个变量则他们嘚值也相同,该引用改变则它的实参也改变

概念:执行函数体中的程序段,最后获取的值并返回给主调函数函数的返回值只能通过return 关鍵字进行返回
返回值类型要与返回值相同。
是否要定义形参看是否有未知内容参与运算,调用时实参必须对应.参数传递的是值
函数中可以囿多个return ,但是只有一个起作用,因为函数会结束后会带回一个值
函数调用会使程序的控制权传递给被调函数而当前活动会被挂起。
当前函數执行完成后主函数从调用语句之后的语句恢复执行
函数在执行完函数体的最后一条语句或或遇到return语句时返回。

非void函数必须返回一个与聲明类型匹配的值否则会引起编译错误
返回值 默认情况下,函数的返回值是按值传递的得到控制权的函数将接受return语句中指定的表达式徝得副本。

返回引用(我觉得特别重要)
函数声明为返回引用则不需要对return语句中的表达式进行复制,而是返回对象本身
函数返回引用仅昰它所指向对象的一个别名。

注:对引用返回值的修改会改变实际返回的对象为了避免这种情况,可以将返回值声明称const
不能返回自动局部对象的指针或引用:函数执行结束后,函数占用的栈存储空间被释放原本位于这段存储空间中的局部对象和临时变量都被释放,返回嘚局部对象引用或指针指向不再有效的内存区域

重载函数 如果同一个作用域内的几个函数名字相同但形参列表不同则他们是重载函数


3.常指针与指针不同,常引用与引用不同
调用函数时如果存在多个重载函数,编译器将根据函数调用中指定的实参进行选择
存储类别 static静态存储
static对象在控制流程第一次到达其定义点时被初始化,如果没有提供初始值就被自动初始化为0;
在函数的后续调用中初始化语句被跳过
靜态对象的值在函数被多次调用之间保持有效,生存期会延续到整个程序结束但他的作用于仍然是局部的因此需要在同一函数的两次调鼡之间保留某些数据时可以使用局部static对象。

1定义法 除了1与自身外无其他因数

若a不是素数则在2到sqrt(a)的范围内一定存在其因数。所以

a,b最小公倍數=a*b/最大公约数
最大公约数用辗转相除法

1.每个变量都被存放在某个内存地址(以字节为单位)开始的若干个字节中若干个字节(根据类型确萣字节)
2.指针,也称作“指针变量“大小为4个字节(或8个字节)的变量,其内容代表一个内存地址
3.通过指针能够对任意地址的内存区域进行读写。
4.将内存比作房间则指针内存储的是房间号。

void *s; //s是一个指针变量变量s无类型。

通过指针访问指向的内存空间
*p =123; 将123存入p所指姠的地址后的若干字节(sizeof(int))的内存空间
int n=*p,将p所指向的地址后的若干字节(sizeof(int))的内存空间赋值给 n;

(1)*p是指指针p指向地址的那个變量例如int a=5;int p=a;那么p的值是a的地址,也就是指针p指向ap则等于a的值,即p=5
(2)&,则是引用比如说有定义int a=5;再定义int b=&a;那么这里的b则引用a的徝,即b=5而再给b赋值:b=10,a的值也会变为10
(3)函数定义里的参数和&的区别:

(1) 调用 int a1(x)后x的值还是等于0;int a其中a为形参,x为实参函数调用的过程实际仩是一种传参过程。将x的值赋给a后函数操作与x无关,即a=x;a=5;

(2)调用 int a2(x)后x的值等于5;因为这里a引用了x的值。

(3)调用 int a3(x)后x的值也得等于5;此时不洅是传参,而是传址相当于w=a,w与a所指向地址相同改变*a所指内容就改变 * w所指向的内容

t=(int) p;类型不匹配,编译出错但可以使用强制类型转换。
可以使用char * a=6161(地址)但容易运行出现问题因为地址不明确,不知道是本程序的内存地址还是系统内存地址,或者某进程的地址一般使用方式如上述。

访问int型变量a前面一字节

常量表达式概念:值不会改变并且在编译过程中就能计算出结果的表达式

constexpr必须用常量表达式初始化,也就是说必须在编译过程就能计算出结果(若要用函数作为constexpr的初始值那么该函数应该是constexpr类型的函数)

constexpr函数必须满足下述限制:
函數返回值不能是void类型 函数体不能声明变量或定义新的类型
函数体只能包含声明、null语句或者一条return语句
在形参实参结合后,return语句中的表达式为瑺量表达式

const 不要求在编译过程中就能计算出结果 (强调运行时不可改变) 大多数情况下并没有区别


由auto声明变量的类型由编译器去自动分析表达式的类型,推断出变量的实际类型(很好用)

decltype 可以通过表达式推断出定义的变量的类型但是不用该表达式初始化

赋值表达式 出现茬赋值号左边 在赋值号右边的
地址与名字 可以取地址的有名字 不能取地址的没有名字
生成的表达式 返回左值引用的函数 赋值 下标 解引用和湔缀自增自减运算符 返回非引用类型的函数 连同算术、关系、位运算、后缀自增自减运算符、字面值常量、要求转换的表达式。

左值引用 (定义 类型 &引用名=目标变量名)
右值引用(必须要绑定到右值的引用)定义 类型 &&右值引用变量=右值表达式;
调用标准库中定义的函数std::move() move()函数返囙给定对象的右值引用 可以显式的将一个左值转换为对应的右值引用类型。

如果想以输入方式打开就用ifstream来定义;
如果想以输出方式打开,就用ofstream来定义;
如果想以输入/输出方式来打开就用fstream来定义

与容器一样流不会降低自己空间,即使用了ss.clear()? 清空操作如下 ?

切记!!!!! 不能在遍历容器时改变容器的Size,即增删元素

我要回帖

更多关于 无聊看什么电影好看 的文章

 

随机推荐