6.2 参数传递

形参的类型决定了形参和实参的交互方式,总体来说,形参可以分为引用类型和非引用类型。引用类型的形参,是直接绑定到其对应的实参上去。而非引用的形参,则是将实参的值通过拷贝的方式传递给形参,即形参和实参,是两个独立的对象。前者称为 引用传递,后者则是值传递。
 
值得一提的是指针形参,指针形参和其他的非引用形参一样,例:
 
                                                                        void reset(int *ip){
                                                                                 *ip = 0;            //改变指针ip所指对象的值
                                                                                  ip = 0;            //只改变ip的局部拷贝,实参未被改变
                                                                                                    }
                                                                         int i = 42;
                                                                         reset(&i);
                                                                         cout<<"i="<<i<<endl;
 
对于传引用参数,同样举例:
 
                                                                        void reset(int &i){
                                                                                  i = 0;
                                                                                                    }
                                                                        int j = 42;
                                                                        reset(j);
                                                                        cout<<"j="<<j<<endl;
二者相较,最好使用引用传值,而非拷贝传值。

猜你喜欢

转载自www.cnblogs.com/NK-007/p/9172838.html