1、形参和实参
形参是定义函数时,接收用户传参的占位符,实参是用户调用函数时,传入的参数。
2、传值和传址
#include <stdio.h>
void swap(int x, int y);
void swap(int x, int y)
{
printf("交换前,x= %d ,y= %d \n", x, y);
int temp;
temp = x;
x = y;
y = temp;
printf("交换后,x= %d ,y= %d \n", x, y);
}
int main()
{
int x = 2, y = 5;
printf("在main函数中,交换前,x= %d ,y= %d \n", x, y);
swap(x, y);
printf("在main函数中,交换后,x= %d ,y= %d \n", x, y);
return 0;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b055203c85b92f14868fab0d70de812a.png)
在main函数中,x,y的值并没有得到交换,也就是函数并没有实际改变实参的值,也就是传值
#include <stdio.h>
void swap(int *x, int *y);
void swap(int *x, int *y)
{
printf("交换前,x= %d ,y= %d \n", *x, *y);
int temp;
temp = *x;
*x = *y;
*y = temp;
printf("交换后,x= %d ,y= %d \n", *x, *y);
}
int main()
{
int x = 2, y = 5;
printf("在main函数中,交换前,x= %d ,y= %d \n", x, y);
swap(&x, &y);
printf("在main函数中,交换后,x= %d ,y= %d \n", x, y);
return 0;
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0579240ed605da91ae12f1a63ba3633d.png)
swap的功能实现,这就是传值和传址的区别