c语言全局变量的定义是什么?

Python019

c语言全局变量的定义是什么?,第1张

在所有函数外部定义变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 和 .h 文件。

例如:

int a, b //全局变量

void func1( )

{

//TODO:

}

float x,y //全局变量

int func2( )

{

//TODO:

}

int main( )

{

//TODO:

return 0

}

a、b、x、y 都是在函数外部定义的全局变量。C语言代码是从前往后依次执行的,由于 x、y 定义在函数 func1() 之后,所以在 func1() 内无效;而 a、b 定义在源程序的开头,所以在 func1()、func2() 和 main() 内都有效。

定义在函数体外部的变量叫全局变量,

要定义全局变量你只要把变量定义在

所有函数外部即可。

要注意的是,全局变量只对它定义位

置以下的函数可见。

#include<stdio.h> 

void f1()

void f2()

int y=100

int main()

{

printf("%d\n\n",y)

//printf("%d\n",x)这不可以读x,x对main()不可见 

f1()

f2()

return 0

}

int x

void f1()

{

x=200

void f2()

{

printf("%d\n",x)

printf("%d\n",y)

}

1、记住一条就够了:在函数之外定义的变量就是全局变量。用static修饰的变量可以是全局的,也可以是局部的,所以说“用static修饰的变量是全局变量”是错误的。用static修饰的变量的生命周期与全局变量一样,但可见性仍分全局和局部。

2、全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子:

int f = 7// 这个是全局变量

int myadd(int a, int b)

{

int c = a + b// c是局部变量,只能在myadd中使用

return c

}

int main(void)

{

printf("%d\n", c)// 因为c是myadd中定义的局部变量,这里会报错。

printf("%d\n", f)// f是全局变量,这句是正确的。

}