#include <stdio.h>
int fun(int x)
{
int y = 0;
static int z = 3;
z++;++y;
return (x+y+z);
}
int main() {
int i, x = 2;
for (i = 0; i < 2; i++)
printf("%5d", fun(x++));
}
结果是 7 9
无论如何不可能输出3个数字,因为i作为循环变量,0 1 循环2次,2就退出了。
下面一个题目,无论如何,sub1(int x, int y)
的确交换了 x y 但是不会对调用者有任何影响,只有指针变量才能影响到原来的变量。
但是因为a1是全局变量,会影响
所以第一次执行后a1=a3=100,a=400,a3=100,a4=200,
第二次执行a1=a1=100,a2=400,a3=100,a4=200
所以结果是100,400,100,200