C语言的值传递
C语言函数参数传递方式包括值传递和引用传递两种方式。值传递就是指在调用函数时,将实参的值复制一份传递给形参,函数内部对形参的修改不会影响到实参的值。C语言的值传递语法很简单,只需要在函数声明和函数定义时声明一个变量即可。
示例一:值传递函数的定义和调用方法
下面的代码演示了一个简单的值传递的函数定义和调用的方法。
#include <stdio.h>
void swap(int x, int y);
int main()
{
/* 定义局部变量 */
int a = 100;
int b = 200;
printf("交换前:a = %d, b = %d\n", a, b);
swap(a, b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
void swap(int x, int y)
{
int temp;
temp = x; /* 保存 x 的值 */
x = y; /* 把 y 赋值给 x */
y = temp; /* 把保存的 x 值赋值给 y */
return;
}
输出结果为:
交换前 : a = 100, b = 200
交换后 : a = 100, b = 200
从输出结果可以看出,值传递使得函数内部修改形参的值,并不会影响到实参的值。
示例二:值传递的数组传递方式
如果函数需要传递一个数组的值,我们可以使用数组的名字作为函数的参数,这个数组的名字相当于指向数组第一个元素的指针,函数中可以通过该指针访问到整个数组。
下面的代码演示了这种方法的调用方式。
#include <stdio.h>
void printArray(int arr[], int size);
int main()
{
int arr[5] = {10, 20, 30, 40, 50};
/* 传递整个数组作为参数 */
printArray(arr, 5);
return 0;
}
void printArray(int arr[], int size)
{
int i;
for (i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
输出结果为:
10 20 30 40 50
在函数中,使用数组的名字作为参数传递给函数,这个数组的名字相当于指向数组第一个元素的指针,函数中可以通过该指针访问到整个数组。
通过上述两个示例,我们可以发现,C语言的值传递方式在函数内部对形参的修改并不会影响到实参的值,对于数组参数,我们可以使用其名字作为函数的参数。值传递是C语言常用的参数传递方式之一,可以满足大部分函数的需要。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言用值传递数据 - Python技术站