函数中参数前&有关问题create(int &list)

函数中参数前&问题create(int &list)
在数据结构里函数形参前面总有一个&
想问一下&表示什么意思?
要是定义为指针型是:create(int   *&list)还是create(int   &*list)啊?
在编写函数时一定要写么?
函数调用的时候实参前面也要加么?

请说得具体些,谢谢!



------解决方案--------------------
“总有”?不会吧。
定义函数时表示参数按引用传递。
------解决方案--------------------

那么什么时候将一个参数指定为引用比较合适呢?

第一种 像swap()的情况,它必须将一个参数改变成指针来允许改变实参的值时就比较合适.
第二种 向主调函数返回额外的结果.
第三种 是向函数传递大型类对象.

第一种 前面记过没保存就丢了,懒得再重复,大意就是swap(int a,int b),要想改变实参a,b的值就必须用指针或引用来做.--swap(int& a,int& b).

第二种 我理解就是返回一个新的东东.

第三种 当访问时默认是拷贝实参副本进入存储区运算.但是当实参是大型类对象时,拷贝副本的效率将高于直接运算的效率,这时就需要把参数指定为引用.如果指定引用时又担心被调用的实参被修改,可以为实参加上const,来保证实参不会被修改.

为了支持类class 类型——尤其是支持有效直观地实现重载操作符机制,C++特别引入了引用机制