C语言中如何定义全局变量

Python09

C语言中如何定义全局变量,第1张

1、首先,我们可以在函数外面定义变量,就是全局变量

2、局部变量可以与全局变量同样命名。

3、但是优先级是局部变量优先。

4、但是局部变量的生命周期是整个结构内。

5、全局变量是整个程序结束,才释放。

6、我们也可以为变量加上修饰符。

以下纯属自己在这两年来学习c语言、JAVA的观点:

全局变量对于编程来说使用起来最方便,随时可以调用它的值,且改变它的值,使用起来方便快捷;

但是也有它的缺点:自这个程序开始运行起,这个全局变量的空间就被申请,直到整个程序运算结束时,空间才会被释放,若是局部变量(以c语言为例)在一个函数中的变量,在进入这个函数时,该函数中的变量空间被申请,结束函数时,这些变量的空间被释放,有利于提高内存空间的利用率;

当全局变量是二维数组或多维数组时,申请为全局变量就不能及时释放空间,占用较大:如迷宫问题 用一个二维乃至多维数组存储迷宫信息,申请全局变量时占用的空间较大(但是用起来是真的方便,/笑) (我这儿并不是叫你迷宫问题不要申请全局变量的二维数组哈)

一般将在一个程序中经常会用到的变量或数据存储为全局变量,使用一次或几次就丢的数据一般在具体函数中定义。

观点不一定正确,但希望有用。

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是全局变量,这句是正确的。}