初学函数时,曾遇到过这样一个问题:如何用一个函数将两个值交换。开始时,觉得这个问题没有多大的问题,于是自信的编出了下面的代码:
#include<stdio.h>
void exchange(int, int);
void exchange(int one, int another)
{
int tmp;
tmp = one;
one = anthoner;
another = tmp;
}
int main()
{
int num1;
int num2;
scanf('%d %d', &num1,&num2);
exchange(num1, num2);
printf('交换后:%d %d', num1, num2);
return 0;
}
编译过后发现了一个问题:函数里值并没有交换!由于初学,自己找不到错误的地方。后来向老师请教,才明白,这简单的一个函数其中蕴含了多少知识。先把正确的代码展现出来:
#include<stdio.h>
void exchange(int *, int *);
void exchange(int *one, int *another)
{
int tmp;
tmp =*one;
*one = *anthoner;
*another = tmp;
}
int main()
{
int num1;
int num2;
scanf('%d %d', &num1,&num2);
exchange(&num1, &num2);
printf('交换后:%d %d', num1, num2);
return 0;
}