1.概念
形参(形式参数),实际上就是函数定义时列出的函数。例如,在定义一个计算两个变量的和的函数时,int sum(int a,int b),a和b就是形参。实参(实际函数),就是在调用函数时传递给函数的参数。例如我把主函数里的c和d作为实参,传递给a和b。
2.错误示范
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void huan(int a, int b) {
int temp;
temp = a; a = b; b = temp;
}
int main() {
int a = 1, b = 2;
huan(a, b);
printf("%d %d", a, b);
return 0;
}
请问以上代码有什么问题?为什么不能实现a,b值的互换?
3.正确示范
1.以为函数的参数是通过值传递的,在函数内部交换两个变量的值,不会影响到实参!
2.如果我们想要交换两个变量的值我们应该怎么做?
#include<stdio.h>
void huan(int *a, int *b) {
int temp;
temp = *a; *a = *b; *b = temp;
}
int main() {
int a = 1, b = 2;
huan(&a, &b);
printf("%d %d", a, b); // 输出 2 1
return 0;
}
如上,我们可以通过指针来交换两个变量的值,因为形参不能改变实参的值。