关于引用,讲一个同学问的题目。
代码
1 |
|
知识点
引用
引用分为左值引用和右值引用。
左值引用是某个变量的别名,作用类似于指针,提高效率。
右值引用是绑定到右值上的引用,只能绑定到即将销毁的对象上。
域限定符
命名空间是为了解决全局命名空间污染问题。
通过限定符可以使用对应命名空间内的对象(变量、函数、类型、类等)。
函数默认参数
默认参数又叫做缺省参数。如何理解?
默认
小明:小红,你在干嘛?
小明:小红,你刚才在干嘛?
缺省
可以缺少、省略。
所有默认参数都必须出现在无默认参数的最右边。
也就是说实参从左向右给形参赋值,默认参数从右向左给形参赋值。
函数位置
函数应该写在代码的哪里?
如果使用C语言,比较好的方式是将函数声明和函数定义分开放,即在main函数前声明函数,在main函数后定义函数。
如果使用C++,最好面向对象,使用头文件和源文件。
栈
相关名词
谈到这个,相关的名词有两个:
堆
new
出来的内存空间是在堆中的(堆)栈
如果在main函数中定义一个
int
变量,这个变量就存储在栈里。
在学数据结构时,会学到栈和堆,它们是两种数据结构。
栈和函数
栈有一个应用就是处理函数的嵌套,比较典型的函数嵌套就是递归。
比如上边代码中的main运行到f函数时,先要保存现在main函数的状态(变量、代码执行到的位置等),将其压栈(PUSH);然后再进入f函数,栈顶即为f函数的内容,f函数执行完后,出栈(POP);然后继续执行main函数。
在调试时就可以看到函数调用栈。
作者:@臭咸鱼
本文为作者原创,转载请注明出处:https://chouxianyu.github.io
欢迎讨论和交流!