Darth_EF 发表于 2023-11-17 16:30:01

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

void fnc(int *&param);
int main(){
    int data={1,2,3,4,5};
    fnc(data);   // 不能用
}

参数中用引用好像是能减少一步把实参复制到形参的操作,但是用了引用就不能直接把声明的数组当成参数传到函数上了。
我想让这个函数既不用复制实参,又能传数组;应该怎么写?

isdkz 发表于 2023-11-17 16:30:11

你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:

void fnc(int *param);


然后在调用函数时,传递数组的名称即可:

fnc(data);// 可以使用


这样就可以实现既不复制实参,又能传递数组的需求。

Darth_EF 发表于 2023-11-17 17:06:36

isdkz 发表于 2023-11-17 16:30
你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:




void fnc(int *param);
改成这样的话,调用fnc的时候不会产生临时变量吗?
本来我用 int*&作为参数类型就是为了防止产生临时变量的(就是实参复制到形参的操作)
页: [1]
查看完整版本: 小白提问: 函数用指针引用类型,调用时不能使用数组