c++中vector地址相关问题

来源:互联网 发布:音乐谱曲软件 编辑:程序博客网 时间:2024/06/02 02:39

问:

vector<int>   a   相当于C里的数组,但是我想问问:
1.单独的想知道a的地址,是向量名a就是地址还是&a才是向量a的地址?
2.定义函数时,void myfun(vector<int> &a=b),这里为什么要有&符号?
3.使用定义了的函数的时候,myfun(a),这里问什么又没有了&符号?


答:

1,a只是vector<int> 类的对象,如需地址得用取地址操作符&
2,定义void myfun(vector<int> &a=b)是用引用传递参数,这样做一般是为了节省内存空间,因为vector是模版类即<  >之间可以放任意内置类型以及类类型,引用就减去了临时变量的创建(如果是void myfun(vector<int> a=b) 会调用拷贝构造函数创建一个临时的跟实参一样的变量无疑增加了内存的消耗)。还有就会如楼上所说的是为了改变实参的值
3,调用的时候myfun(a),这是引用形参函数调用的时候就应该这样写,就是规矩,要是你早这么N年出生说不定规矩是你定。


http://zhidao.baidu.com/link?url=B3-_ZhXiMv0vCxmoxkgOeONJ8tAc5UWere2sztZOJK-7Vfr7a59zv5XgbZ0WS6QzlpUafUdVUUh1nNfZhgtypK

0 0
原创粉丝点击