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

本文深入探讨了C语言中指针的使用与C++中引用的应用,阐述了两者在安全性、自然性和功能实现上的区别,并详细介绍了如何通过引用参数返回额外信息、利用const引用避免复制、传递指向指针的引用、数组形参及多维数组传递的方法,以及在不同容器类型如vector、迭代器和数组中使用的最佳实践。

摘要生成于 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) {/*…*/}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值