#include <stdio.h>
void exchange(int number_a, int number_b);
int main(void)
{
int a = 2, b = 5;
exchange(a, b);
printf("a = %d, b = %d", a, b);
return 0;
}
void exchange(int number_a, int number_b)
{
int temp;
temp = number_a;
number_a = number_b;
number_b = temp;
}
exchange(int number_a, int number_b)函数形参是值传递,number_a number_b 的作用域就在函数体内,
待函数执行完毕退出,number_a number_b 空间也被释放,函数里交换的是 number_a number_b 的值,
主函数中 a b 的值并未被改变。修改如下,供参考:
#include <stdio.h>
void exchange(int *number_a, int *number_b);//修改
int main(void)
{
int a = 2, b = 5;
exchange(&a, &b); //修改
printf("a = %d, b = %d", a, b);
return 0;
}
void exchange(int *number_a, int *number_b) //修改
{
int temp;
temp = *number_a; //修改
*number_a = *number_b; //修改
*number_b = temp; //修改
}