C++函数参数中的"&"号是什么意思呢?

近日看到某些VC中的函数参数是这么写的,int func(int &count) ,在形参“count”前加了一个"&"符,这是什么意思呢?能够起到什么作用呢?恳请大家回答。谢谢

在函数的声明或定义中,形参带'&'号,表示形参是该类型的引用类型。所谓引用是一个变量的别名,这样对形参的修改会反映在实参上。

比如要实现交换就可以用

void swap(int &a, int &b)
{
    int tmp = a;
    a = b;
    b = tmp;
}

在函数的调用中,实参带'&'号,表示取地址运算,结果是一个指向操作变量的指针。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-28
引用,即给一个变量取别名,他们还是同一个变量,就是比如a=0;调用 func(a);再函数里面count++;函数结束后会改变a的值,a这时候等于1.建议去看C++ Primer,经典必读书籍
第2个回答  2011-02-28
引用,创建一个count的复本,这样就不会更改你传递进来的参数值了,当然如果你想改变的话的应该用指针:int func(int * count)
第3个回答  2011-02-27
1取地址;
int i=1;
int pi=&i;
2位运算,表求按位与
int a=1,b=3;
int c=a&b;
3引用
int a;
int &b=a;//b是a的引用,b等同于a
这是 sun_siliang 的答案
第4个回答  2011-02-27
int &count它有什么功能,
countLeaf(struct BINode *root,int &count)
{
if(!root)return 0;
{
if((!root->lchild)&&(!root->rchild))
return 1;
else{
m=count(root->lchild);
n=count(root->rchild);
return m+n;
}
}
}

这个函数传入的第二个参数是一个函数地址的引用
count(root->lchild) //而这里就是调用这个函数 目的应该是求根结点左孩子这边的叶子结点数
相似回答