全局变量和局部静态变量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linxizi0622/article/details/70853760

今天做虹软科技的笔试题

#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

猜你喜欢

转载自blog.csdn.net/linxizi0622/article/details/70853760