开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情
6 函数
6.1 函数基础
函数的调用完成两项工作:
1、实参初始化函数对应的形参
2、将控权转移给被调函数
形参和实参,尽管二者存在对应关系,但是并没有规定实参的求值顺序
函数的返回类型不可以是数组类型,函数类型,可以是指向数组或函数的指针
6.1.1 局部对象
局部变量:形参,函数体内部定义的变量。局部变量会隐藏在外层作用域中同名的其他所有声明
在所有函数体之外定义的对象存在于程序的整个执行过程中
自动对象:只存在于执行期间的对象。当块的执行结束后,块中创建的自动对象的值就变成未定义的了。形参就是一种自动对象。
局部静态对象:在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止才被销毁,在此期间即使对象所在的函数结束执行也不会对它有影响。
6.1.2 函数声明
函数声明也称函数原型,一般储存在头文件中,这也是方便用户更加了解各种函数的接口,所以有关函数声明是必不可少的。
6.1.3 分离式编译
要生成可执行文件,必须告诉编译器我们用到的代码在哪里
$ CC factMain.cc fact.cc
$ CC factMain.cc fact.cc -o main
接下来运行可执行文件,就会执行我们定义的main函数
6.2 参数传递
当形参是引用类型时,我们说它对应的实参被引用传递或者函数被传引用调用,也就是说形参就是实参的别名
当实参的值被拷贝给形参时,形参和实参是两个值。我们称之为值传递或者函数被传值调用