《程序设计》2007.9 引用与引用参数 int squareByvalue int a return a *a;/caller's argument not modified) void squareByReference(iht &cRef) cRef *cRef;//caller's argument modified 输出结果: x=2 before square By Value Value returned by squareBy Value:4 x 2 after squareBy Value z 4 before SquareByReference z 16 after squareSyReference 程序设计-26
《程序设计》 2007.9 程序设计 - 26 int squareByvalue ( int a ) { return a *= a; // caller's argument not modified} void squareByReference( iht &cRef ) { cRef *= cRef; // caller's argument modified } 输出结果: x=2 before squareByValue Value returned by squareByValue: 4 x = 2 after squareByValue z = 4 before $quareByReference z = 16 after squareSyReference
《程序设计》2007.9 引用与引用参数 引用也可以用作函数中其他变量的别名。例如 下列代码: int count 1; int &cRef=count; ++cRef; 注意: >引用变量应在声明中初始化,不能作为其他变量的 别名而重新赋值。 > 获得引用地址和比较引用不会造成语法错误,而且 每个操作实际上是对原始变量本身进行的。 >引用参数应为左值,而不能是常量或返回左值的表 达式。 程序设计-27
《程序设计》 2007.9 程序设计 - 27 v 引用也可以用作函数中其他变量的别名。例如 下列代码: int count = 1; int &cRef = count; ++cRef; v 注意: Ø 引用变量应在声明中初始化,不能作为其他变量的 别名而重新赋值。 Ø 获得引用地址和比较引用不会造成语法错误,而且 每个操作实际上是对原始变量本身进行的。 Ø 引用参数应为左值,而不能是常量或返回左值的表 达式
《程序设计》2007.9 引用与引用参数 常见编程错误: 在一条语句中声明多个引用时会出现一些常见问题。 例如,要声明x、y、z变量分别为变量a、b、c的引用, 表达式int&x=a,y=b,z=c或int&x,y,Z; 都是错误 的.正确的应是int&x=a,&y=b,&z=c; 函数可以返回引用,但却会经常出现问题。函数返回被 调用函数中声明的变量的引用时,变量应在函数中声明 为static 常见编程错误: 声明用变量而不对其进行初始化是个语法错误。 程序设计-28
《程序设计》 2007.9 程序设计 - 28 v 常见编程错误: 在一条语句中声明多个引用时会出现一些常见问题。 例如,要声明x、y、z变量分别为变量a、b、c的引用, 表达式 int& x=a, y=b,z=c 或 int& x, y,z;都是错误 的.正确的应是int &x = a, &y=b, &z=c;。 v 函数可以返回引用,但却会经常出现问题。函数返回被 调用函数中声明的变量的引用时,变量应在函数中声明 为static v 常见编程错误: 声明引用变量而不对其进行初始化是个语法错误
引用与引用参数 《程序设计》2007.9 int main() int x =3,&y x;//y is now an alias for x cout<<"x ="<<x<<endl<<"y ="<<y<endl; y=7; cout<<"x="<<x<<endl<<"y ="<<y <endl; return 0; 输出结果: X=3 y=3 X=7 y=7 程序设计-29
《程序设计》 2007.9 程序设计 - 29 int main( ) { int x = 3, &y = x; // y is now an alias for x cout << "x = " << x << endl << "y = " << y << endl; y=7; cout << "x = " << x << endl << "y = " << y << endl; return 0; } 输出结果: x = 3 y = 3 x = 7 y = 7
《程序设计》2007.9 第6章过程封装一一函数 %函数 重载函数 自己编写函数 函数模版 函数的使用 变量的作用域 引用参数 变量的存储类别 带默认值的函数 ÷递归函数 内联函数 ,模块化设计 程序设计-30
《程序设计》 2007.9 程序设计 - 30 v 函数 v 自己编写函数 v 函数的使用 v 引用参数 v 带默认值的函数 v 内联函数 v 重载函数 v 函数模版 v 变量的作用域 v 变量的存储类别 v 递归函数 v 模块化设计