局部对象
自动对象:只存在于块执行期间的对象称为自动对象
局部静态对象:局部静态对象在程序执行路径第一次经过对象定义语句时初始化,并且直到程序终止时才被销毁,在此期间即使对象所在的函数结束执行也不会影响对它的影响
参数传递
1. 传值参数
当初始化一个非引用类型的变量时,初始值被拷贝给变量,此时对变量的改动不会影响初始值
指针形参
指针的形参和其他非引用类型一样,当执行指针拷贝操作时,拷贝的是指针的值,但是可以通过该指针修改其所指对象的值
2. 传引用参数
若是引用形参,修改形参的值就是修改其实参的值。如果函数不改变形参的值,最好使用引用形参避免了从实参到形参值的拷贝
3. const形参和实参
当形参是const定义的对象时,实参可以是const也可以不是const。那么有如下所示:
void fz(const int i);
void fz(int i); //错误,重复定义了fz
形参的初始化和变量的初始化一样的,所以只要掌握通用的初始化规则即可
当形参是引用时,尽量使用常量引用作为形参,一方面避免函数中对引用值进行修改,另一方面也会限制函数所能接受的实参类型。因为不能把const对象、字面值或者需要类型转换的对象传递给普通的引用形参