什么是参数传递?
在程序运行过程中,将实际参数的值或者地址传递给被调用函数的形式参数,从而在函数中完成对数据处理和返回的过程。
在C语言当中,参数的传递方式本质上只有一种,就是值传递。
但为了更好区分理解,划分了两种方式:值传递和指针传递。下面我们就来聊聊这两种传递方式有什么不同。
值传递
值传递,是最普通的传递方式。将实际参数的值复制一份,然后传递给形式参数,然后在函数内完成数据处理和返回等行为。
由于是复制的关系,因此形参在函数内再怎么七十二变,对函数外部实参的值是没有任何影响。
下面来看 swap 交换函数的例子:
#include<stdio.h>
void swap(int x, int y){
int temp = x;
x = y;
y = temp;
printf("swap函数内完成交换后:x=%d, y=%d\n", x, y);
}
int main(){
int a=3, int b=4;
swap(a, b);
printf("调用swap函数后:a=%d, b=%d", a, b);
return 0;
}
运行结果:
swap函数内完成交换后:x=4, y=