将数组传递给函数
在 C++ 中,一个数组也可以作为参数传递给一个函数。
声明函数时,参数应该用方括号[] 来定义。
下面是一个例子:
void rhzArray(int arr[], int size) {
for(int x=0; x<size; x++) {
cout << arr[x];
}
}
现在,我们可以在main() 中使用我们的函数,并在数组中调用它。
void rhzArray(int arr[], int size) {
for(int x=0; x<size; x++) {
cout << arr[x] << endl;
}
}
int main() {
int myArr[3]= {17, 30, 28};
rhzArray(myArr, 3);
}
在代码中,rhzArray函数将数组作为参数(int arr[]),并使用for循环遍历数组。
我们在main() 中调用函数,这是我们将myArr数组传递给打印元素的函数的地方。
提示:请记住,要将数组作为参数传递给函数,请指定不带方括号的数组名称。
函数传递参数的方式
当调用函数时,有两种向函数传递参数的方式:
传值调用:该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数对实际参数没有影响。
引用调用:该方法把参数的引用复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
提示:默认情况下,C++ 使用传值调用来传递参数。
传值调用
向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。
下面是一个例子:
void swap(int x) {
x = 50;
}
int main() {
int var = 10;
swap(var);
cout << var;
}
// 输出 10
引用调用
向函数传递参数的引用调用方法,把引用的地址复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
按引用传递值,参数引用被传递给函数,就像传递其他值给函数一样。
下面是一个例子:
void swap(int *x) {
*x = 50;
}
int main() {
int var = 10;
swap(&var);
cout << var;
}
// 输出 50
如你所见,我们使用操作符&的地址将变量直接传递给函数。
函数声明表示该函数将一个指针作为其参数(使用 * 运算符定义)。
结果,函数实际上已经改变了参数的值,通过指针访问它。
传值调用与引用调用
传值调用:修改函数内的形式参数对实际参数没有影响。
按引用传递:修改形式参数会影响实际参数。
一般来说,传值调用更快,更有效。当函数需要修改参数时,或者当需要传递一个数据类型时,如果通过引用调用,这会占用大量的内存,而且复制的代价很高。
文章评论