C语言里,函数参数的地址传递是非常普遍的,比如下面的例子:
#include
#include
int main()
{
int a = 2, b = 5;
int m, n;
nmfunc2(a, b, &m, &n);
printf("m = %d, n = %d \n", m, n);
return 0;
}
int nmfunc2(int a, int b, int *m,int *n)
{
*m = a + b;
*n = a * b;
return m, n;
}
函数运行结果为:
m = 7, n = 10
Process returned 0 (0x0) execution time : 0.147 s
Press any key to continue.
更多关于参数的地址传递,可以参看 漫谈C指针:参数的地址传递 这篇文章。
我们也可以使用全局变量来替代地址传递的方式去改写这个程序:
#include
#include
int x,y;
int main()
{
int a = 2, b = 5;
int m, n;
nmfunc(a, b);
printf("x = %d, y = %d \n", x, y);
return 0;
}
int nmfunc(int a,int b)
{
x = a + b;
y = a * b;
return x, y;
}
仅提供这么一种思路。在扩展欧几里德算法里,也可以使用全局变量来让程序简化一些。有兴趣可以看看 设计扩展欧几里德算法的程序描述 。