局部变量:在局部代码块内定义;
作用域在局部代码块内,生命周期在局部代码块内,结束时销毁。
#include <stdio.h>
void test()
{
int num=0;//num是局部变量
num ++;
printf ("%d\n",num)
}
int main()
{
int i=0;
for(i=0;i<10;i++)
{
test ();
}
return 0;
}
输出:1111111111
全局变量:在所有代码块外定义;
作用域是整个工程,生命周期程序开始至结束。
工程test 10_10
源文件sum.c
int g_val=2017;
源文件test.c
#include <stdio.h>
extern int g_val;
int main()
{
printf("%d\n",g_val);
return 0;
}
输出2017
static修饰的变量:
(1).修饰的局部变量改变生命周期,即局部代码块内创建的变量不被销毁
#include <stdio.h>
void test()
{
static int num=0;
num ++;
printf ("%d\n",num)
}
int main()
{
int i=0;
for(i=0;i<10;i++)
{
test ();
}
return 0;
}
输出结果:1111111111
(2).修饰的全局变量改变作用域,只可在自己的源文件内部使用。
代码:
工程test 10_10
源文件sum.c
static int g_val=2017;
源文件test.c
#include <stdio.h>
extern int g_val;
int main()
{
printf("%d\n",g_val);
return 0;
}
编译出错