
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
假设: 环的周⻓为C,头结点到slow结点的⻓度为L,slow⾛⼀步,fast⾛三步,当slow指针⼊环后, slow和fast指针在环中开始进⾏追逐,假设此时fast指针已经绕环x周。由于慢指针⾛⼀步,快指针要⾛三步,因此得出: 3 * 慢指针路程 = 快指针路程 ,即: 3L = L+ C − N+ xC,所以2L = (x + 1)C − N。极端情况下,假设n=1,此时: L=R-X即:⼀

我们在写C语言代码的时候,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。那函数是如何调用的?函数的返回值又是如何传回的?函数参数是如何传递的?这些问题都和函数栈帧有关系。函数参数和函数返回值临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)保存上下文信息(包括在函数调用前后需要保持不变的寄存器)栈(stack)是现代计算机程序里最为重要的概念之一,几乎每一个

setheading(-30)# 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)color(160, 82, 45)# 返回或设置pencolor和fillcolor。pencolor(255, 155, 192)# 画笔颜色。drawNose(-100, 100)# 鼻子。drawTail(148, -155)# 尾巴。drawHands(-56, -45

⼀般我们可以在 Debug 中使⽤,在 Release 版本中选择禁⽤ assert 就⾏,在 VS 这样的集成开发环境中,在 Release 版本中,直接就是优化掉了。我们需要当调⽤Swap函数的时候,Swap函数内部操作的就是main函数中的a和b,直接将a和b的值交换了。assert() 的使⽤对程序员是⾮常友好的,使⽤ assert() 有⼏个好处:它不仅能⾃动标识⽂件和出问题的⾏号,还有
⽐如:我们要写⼀个函数判断⼀年是否是闰年。//判断⼀年是不是闰年return 1;}//这部分属于函数的定义int main()int y = 0;//函数的调用if(r == 1)printf("闰年\n");elseprintf("⾮闰年\n");return 0;if(r == 1)printf("闰年\n");elseprintf("⾮闰年\n");return 0;

空指针的值通常为 nullptr 或 NULL,其中:nullptr 是 C++11 引入的关键字,用于表示空指针,具有类型安全性。它的类型是。NULL 是早期 C 语言中用于表示空指针的宏定义,通常定义为((void*)0)。
引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。比如:水浒传中林冲,外号豹⼦头类型&引⽤别名=引⽤对象;C++中为了避免引⼊太多的运算符,会复⽤C语⾔的⼀些符号,⽐如前⾯的<<和>>,这⾥引⽤也和取地址使⽤了同⼀个符号&。TIP]如何区分取地址和引用呢?&i->在变量之前是取地址int&->在类型之后是引用int m

• 定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。• namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了• C++中域有函数局部域,全局域,命名空间域,类域;
设⼆叉树的根结点所在层数为1,层序遍历就是从所在⼆叉树的根结点出发,⾸先访问第⼀层的树根结点,然后从左到右访问第2层上的结点,接着是第三层的结点,以此类推,⾃上⽽下,⾃左⾄右逐层访问树的结点的过程就是层序遍历。通常的⽅法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别⽤来给出该结点左孩⼦和右孩⼦所在的链结点的存储地址, 其结构如下:。根结点的左⼦树和右⼦树分别⼜是由⼦树结点、⼦树结点

引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。比如:水浒传中林冲,外号豹⼦头类型&引⽤别名=引⽤对象;C++中为了避免引⼊太多的运算符,会复⽤C语⾔的⼀些符号,⽐如前⾯的<<和>>,这⾥引⽤也和取地址使⽤了同⼀个符号&。TIP]如何区分取地址和引用呢?&i->在变量之前是取地址int&->在类型之后是引用int m








