C语言里,函数参数的地址传递是非常普遍的,比如下面的例子:
#include <stdio.h> #include <math.h> 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 <stdio.h> #include <math.h> 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; }
仅提供这么一种思路。在扩展欧几里德算法里,也可以使用全局变量来让程序简化一些。有兴趣可以看看 设计扩展欧几里德算法的程序描述 。
现代魔法 推荐于 2013-02-27 10:23