传值调用(pass by value) 示例
说明:以下代码为在函数中交换两个数,请分析主函数的输出结果。
#include <stdio.h>
void swap(int, int);
int main()
{
int a, b;
a = 10; b = 5;
printf("交换前:a=%d, b=%d\n", a, b);
swap(a, b);
printf("交换后:a=%d, b=%d\n", a, b);
}
void swap(int x, int y) //交换两个数
{
int t;
t = x; x = y; y = t;
printf("函数内两个数的值为:a=%d b=%d\n", x, y);
return ;
}
分析:a和b的值虽然传递给了函数,并在函数中实现了交换,但并未影响到主函数中的a和b的值,其根本原因是a和b传递给swap函数的x和y时,是传值调用(pass by value)。