鱼C论坛

 找回密码
 立即注册
查看: 1030|回复: 2

小白提问: 函数用指针引用类型,调用时不能使用数组

[复制链接]
发表于 2023-11-17 16:30:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
void fnc(int *¶m); 
int main(){
    int data[5]={1,2,3,4,5};
    fnc(data);   // 不能用
}

参数中用引用好像是能减少一步把实参复制到形参的操作,但是用了引用就不能直接把声明的数组当成参数传到函数上了。
我想让这个函数既不用复制实参,又能传数组;应该怎么写?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-17 16:30:11 | 显示全部楼层
你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:
void fnc(int *param);

然后在调用函数时,传递数组的名称即可:
fnc(data);  // 可以使用

这样就可以实现既不复制实参,又能传递数组的需求。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-17 17:06:36 | 显示全部楼层
isdkz 发表于 2023-11-17 16:30
你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:
void fnc(int *param);
改成这样的话,调用fnc的时候不会产生临时变量吗?
本来我用 int*&作为参数类型就是为了防止产生临时变量的(就是实参复制到形参的操作)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 17:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表