#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
//值传递:形参不影响实参的值(使用变量、常量、数组元素作为函数参数)
void swap01(int a,int b)
{
int temp=a;
a=b;
b=temp;
}
//地址传递:形参可以改变实参的值;(使用数组名或指针作为函数参数)
void swap(int*a,int*b)
{
int temp=*a;
*a=*b;
*b=temp;
}
int main()
{
int a=10;
int b=20;
//值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参;调用结束时,形参的存储单元被释放,且形参的值不能返回给主调函数
//swap(a,b)//10,20
/*地址传递:地址传递传递的是数组首地址或指针的值,而形参接收到的是地址,即指向实参的存储单元,形参和实参占用相同的存储单元。形参不存在存储空间,数组名或指针就是一组连续空间的首地址。数组名或指针作函数参数时,传送的是地址传送,形参取得首地址后,与实参拥有一段内存空间*/
swap(&a,&b);//20,10
printf("%d ",a);
printf("%d ",b);
return EXIT_SUCCESS;
}