c++中vector地址相关问题

问:

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值