今天做虹软科技的笔试题
#include<stdio.h>
int c=20;int a=5;
void fun(int b){
static int a=10;
a+=b++;
printf("%d\n",a);
}
int main()
{
fun(c);
a+=c++;
printf("%d\n",a);
return 0;
}
结果是30 25
原因是,首次输出的fun函数里面的,那么a的值应该是静态局部变量的值,a=10
那么a=30
但是全局变量的值不会改变,
所以main函数里面执行的时候,a=5,c=20,所以输出a=25