在函数的实际参数中什么时候加上&该怎么处理

在函数的实际参数中什么时候加上&
比如说我定义一个数据结构struct   polynode
typedef   polynode   *poly
在初始化函数中   就要加上&   int   initpoly(poly   &P)
但在其他函数中优势就不加
什么时候该加,什么时候不加

------解决方案--------------------
概念性混乱,基本不知道楼主想说什么?
推荐看c++ primer.

引用类型和取地址符 都是&, 要分辨他们就要分辨是否是定义数据还是执行运算.

int i;
int &data = i; //这里定义了一个引用类型,初始化为i
int *ptr = &i; //这里&i 是执行运算,表示取i 的地址;

函数参数:
void func( int& data ); //这里函数声明或定义的形参是表示引用,

func( &i ); //这里调用函数的实参是表示取地址.

更多的请看书系统学习.