/* ======================================== */
/* 程序实例: 1_5_4.c */
/* 传值和传址的子程序调用(交换XY) */
/* ======================================== */
/* ---------------------------------------- */
/* 交换两值(传值子程序) */
/* ---------------------------------------- */
void swap1(int x,int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
/* ---------------------------------------- */
/* 交换两值(传址子程序) */
/* ---------------------------------------- */
void swap2(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
/* ---------------------------------------- */
/* 主程式 */
/* ---------------------------------------- */
void main()
{
int x = 10; /* 局部变数宣告 */
int y = 0; /* 局部变数宣告 */
printf(" X Y \n");
printf(" 初值 %d %d \n",x,y);
/* 传值副程序呼叫(交换XY) */
swap1(x,y);
printf(" 传值 %d %d \n",x,y);
/* 传址副程序呼叫(交换XY) */
swap2(&x,&y);
printf(" 传址 %d %d \n",x,y);
}