这里所要解决的问题是哈夫曼算法中最核心的Select函数,选取两个权值最小的根节点。
void Select(int &min1,int &min2,int m);
C++函数参数和返回值三种传递方式:值传递、指针传递和引用传递 (着重理解)
引用与指针的比较
引用是 C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n 是m 的
一个引用(reference),m 是被引用物(referent)。
int m;
int &n = m;
n 相当于m 的别名(绰号),对n 的任何操作就是对m 的操作。例如有人名叫王小毛,
他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所以n 既
不 是m 的拷贝,也不是指向m 的指针,其实n 就是m 它自己。
C 引用方式调用函数
通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。
/* 函数定义 */
void swap(int *x, int *y)
{
int temp;
temp = *x; /* 保存地址 x 的值 */
*x = *y; /* 把 y 赋值给 x */
*y = temp; /* 把 temp 赋值给 y */
return;
}