C++ -- 函数:引用形参

本文探讨了C与C++中参数传递的不同方式及其应用场景,包括指针、引用、const引用、数组及多维数组的传递方法。重点介绍了如何通过引用传递额外信息和避免复制,以及传递容器和数组的有效策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一,C语言更多使用指针,c++更多实用应用,使用引用更安全和自然.

 

二,使用引用形参返回额外信息(使用)

   通过返回迭代器,迭代器所指的对象则是额外返回的信息.

 

三,利用const引用避免复制

  如果使用引用形参的唯一目的是避免复制实参,则应将形参定义为const引用.

 

四,传递指向指针的引用:

Void ptrswap(int *&v1, int *&v2)

{  int *tmp = v2;

       V2 = v1;

       V1 = tmp;}

/*交换两个指针指向的地址*/

 

五,vector和其他容器类型的形参

  同样为了避免复制形参,通过传递迭代器来传递容器

void print(vector<int>::const_iterator beg,

vector<int>::const_iterator end)

{/*….*/}

 

六,数组形参

Void prinvalue(int *) {/*…*/}

Void prinvalue(int[]) {/*…*/}

Void prinvalue(int[10]) {/*…*/} 

 //编译器不检查长度,使用时超出范围也合法,但调用时会错误

三个定义等价,形参类型均为int*.

数组实参传递时默认传入指针,形参副本复制的是指针的值,通过形参的操作都在对数组本身进行操作.

 

七.通过引用传递数组

void printValue(int (&arr)[10]) {/*…*/}

引用含有10个元素的数组.

 

八,多维数组的传递.

Void prinvalue(int (*matrix)[10], int rowSize) {/*…*/}   //圆括号不可少.下标操作符具有更高优先级

Void prinvalue(int matrix[][10], int rowSize) {/*…*/}

 

 

转载于:https://www.cnblogs.com/boloyonghao/archive/2012/07/20/2600425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值