|
- #include <stdio.h>
- exchange(int array[]) {
- array[0] += array[1];
- array[1] = array[0]-array[1];
- array[0] -= array[1];
- }
- int main() {
- int a=3,b=2;
- exchange(&a);
- printf("%d,%d\n",a,b);
- }
复制代码
这个程序编译运行结果不对,是2289832,2。
我把a和b定义成静态变量就没有问题
- #include <stdio.h>
- exchange(int array[]) {
- array[0] += array[1];
- array[1] = array[0]-array[1];
- array[0] -= array[1];
- }
- int main() {
- static int a=3,b=2;
- exchange(&a);
- printf("%d,%d\n",a,b);
- }
复制代码
这样运行就可以交换a和b的值
麻烦高手解释一下这个static[ |
|