小白提问: 函数用指针引用类型,调用时不能使用数组
void fnc(int *¶m);int main(){
int data={1,2,3,4,5};
fnc(data); // 不能用
}
参数中用引用好像是能减少一步把实参复制到形参的操作,但是用了引用就不能直接把声明的数组当成参数传到函数上了。
我想让这个函数既不用复制实参,又能传数组;应该怎么写? 你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:
void fnc(int *param);
然后在调用函数时,传递数组的名称即可:
fnc(data);// 可以使用
这样就可以实现既不复制实参,又能传递数组的需求。 isdkz 发表于 2023-11-17 16:30
你可以将参数类型修改为指针类型,这样就可以直接传递数组了。修改函数声明如下:
void fnc(int *param);
改成这样的话,调用fnc的时候不会产生临时变量吗?
本来我用 int*&作为参数类型就是为了防止产生临时变量的(就是实参复制到形参的操作)
页:
[1]