1、值传递
值传递时,函数接收到的是参数的一个副本,对副本的修改不会影响到原始变量。
#include <stdio.h>
void modifyValue(int x)
{
x = 10; // 修改的是x的副本,对原始变量无影响
}
int main()
{
int a = 5;
modifyValue(a);
printf("After modifyValue, a = %d\n", a); // 输出: After modifyValue, a = 5
return 0;
}
2、指针传递
当通过指针传递时,函数接收到的是变量的地址,因此函数内部对指针所指向地址的修改会反映到原始变量上。
#include <stdio.h>
void modifyAddress(int *ptr)
{
*ptr = 10; // 修改ptr所指向的值,即原始变量的值
}
int main()
{
int a = 5;
modifyAddress(&a); // 传递a的地址
printf("After modifyAddress, a = %d\n", a); // 输出: After modifyAddress, a = 10
return 0;
}