按值传递 函数调用中复制参数的值 函数只能访问自己创建的副本 对副本进行的更改不会影响原始变量 100# 25 25 北大青鸟
4 按值传递 • 函数调用中复制参数的值 • 函数只能访问自己创建的副本 • 对副本进行的更改不会影响原始变量 25 100# 25
按引用传递 函数调用中传递参数的引用 主要优点 函数可以访问主调程序中的实际变量 提供一种将多个值从被调函数返回到主调程序 的机制 100# 100 25 北大青鸟
5 按引用传递 • 函数调用中传递参数的引用 • 主要优点 – 函数可以访问主调程序中的实际变量 – 提供一种将多个值从被调函数返回到主调程序 的机制 25 100# 100
向函数传递引用21 引用提供对象的别名或可选名 &"告诉编译器将变量当作引用 void swap (int& i, int& j) int tmp p i void main() int x, yi swap(x, y) 6 北大青鸟
6 向函数传递引用 2-1 • 引用提供对象的别名或可选名 • “&”告诉编译器将变量当作引用 void swap(int& i, int& j) { int tmp = i; i = j; j = tmp; } void main() { int x, y; swap(x,y); }
向函数传递引用22 引用就是对象本身 不要认为 引用是指向对象的指针 引用是该对象的副本 大的数据结构按引用传递,效率非常高 北大青鸟
7 向函数传递引用 2-2 • 引用就是对象本身 • 不要认为 – 引用是指向对象的指针 – 引用是该对象的副本 • 大的数据结构按引用传递,效率非常高
返回引用 返回引用不是返回变量的副本 函数头中包含一个“& int &fn(int &num return(num)i void main() int n1, n2 n1=fn(n2); 北大青鸟
8 返回引用 • 返回引用不是返回变量的副本 • 函数头中包含一个“&” int &fn(int &num) { return(num); } void main() { int n1, n2; n1 = fn(n2); }