C语言,全局变量和局部变量有什么区别

麻烦讲讲,顺便讲讲当什么情况下定义成全局变量好,什么情况下定义成局部变量好。为什么

全局变量就是整个源程序都有效的变量;而局部变量会在其所属的函数或循环等结束后消亡。整个程序都要用的变量定义全局变量,如果就是某个函数用的话,就定义局部变量,以便其他函数可以重新定义同名变量来使用。 要是都用全局变量,那遇到大程序时,程序是由不同人分别编各自的模块或函数,不能避免定义同名变量,到时就会冲突。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-04-05
具体来说,全局变量和局部变量的区别如下:

1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等

2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区

3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

4. 使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
第2个回答  推荐于2018-03-20
全局变量就是整个源程序都有效的变量;而局部变量会在其所属的函数或循环等结束后消亡。
整个程序都要用的变量定义全局变量,如果就是某个函数用的话,就定义局部变量,以便其他函数可以重新定义同名变量来使用。
要是都用全局变量,那遇到大程序时,程序是由不同人分别编各自的模块或函数,不能避免定义同名变量,到时就会冲突。本回答被提问者和网友采纳
第3个回答  2019-07-13
1)局部变量只在本函数范围有效,在此函数以外是不能使用这些变量;全局变量的有效范围是从定义变量的位置开始到本源文件结束。
2)局部变量是程序运行到该函数时给该变量分配内存空间,函数结束则释放该内存空间;全局变量是程序运行时事先分配内存空间,当程序结束时释放内存。
第4个回答  2011-03-21
根据使用范围来区分的。
1。局部变量

他是 指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用

最值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失

eg.

func ()

{
int x; 局部变量x的作用域 很明确
......
}

2。全局变量

在程序执行的过程中一直有效

eg.

int x=1;

func ()

{
x=x+1;

}

func1 ()

{
x=x-1;

}

main ()

{

}
由此不难看出整型x的作用范围

对于全局变量 如果在定义的时候不做初始化 则系统将自动为起赋值 数值型为0

字符型为空'\0'

全局变量的弊端 增加内存开销 降低函数的通用性

定义全局变量时 理想的位置是在文件的开头 当这些函数以及同一个程序中的其他源程序文件中的某些函数需要使用该全局变量时 在函数内部对该变量使用extern 加以说明 说明他是外部的

(这里还要做详细的讲解)

eg.

main ()

{
extern int a,b;
printf ("mIn is %d\n",min(a,b));
}

int a=1,b=2;
int min (x,y)
int x,y;
{
int z;
z=x<y?x:y;
return(z);
}
我还要说明的是 对外部变量的说明和对全局变量的定义不是一回事

对外部变量的说明 只是声明该变量是在外部定义过的一个全局变量 在这里引用 而对全局变量的定义则是要对起分配存储单元的

一个全局变量只能定义一次 可是却可以多次引用

*** 在同一源文件中,全局变量和局部变量同名时,在局部变量的作用域内,全局变量不起作用的。

全局变量和局部变量有什么区别
1、作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等。2、内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区。3、生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了。4...

全局变量和局部变量的本质区别
局部变量和全局变量的区别有:定义范围不同,作用域不同、生命期不同。主要表现在:1、定义范围不同,一个是函数体内部,一个是函数外部。2、作用域不同,一个仅限于函数体内容,一个是整个程序。3、生命期不同,全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,...

全局变量和局部变量的区别有哪些?
1. 作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等 2. 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区 3. 生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了 4...

局部变量和全局变量的区别
1. 作用范围不同:局部变量仅在其被定义的函数或代码块内部有效,离开该范围后无法访问。全局变量则在整个程序执行期间都可以被访问,它们定义在程序顶层,可供任何函数内部使用。2. 内存分配方式不同:局部变量通常在函数调用时创建,函数执行结束后销毁。这意味着局部变量的生命周期是临时的,它们占用的...

c语言中局部变量和全局变量的区别是什么
2. 局部变量是在特定函数或过程中定义的变量,它们的作用域仅限于定义它们的函数或过程内部。局部变量是相对于全局变量而言的,它们在函数执行时创建,函数执行完毕后释放。局部变量通常存储在程序的栈区,这意味着它们在函数调用时被分配,函数调用结束后被销毁。3. 全局变量和局部变量可以有相同的名称,...

全局变量和局部变量有什么区别
全局变量和局部变量有以下几个主要区别:一、生命周期不同 全局变量在整个程序的执行期间一直存在,而局部变量的生命周期仅限于其所在的函数或代码块内,当函数执行完毕,局部变量会被销毁。二、作用域不同 全局变量具有全局作用域,可以在程序的任何位置被访问和使用。而局部变量只在其所属的函数或代码块...

全局变量和局部变量有什么区别
全局变量和局部变量的区别是作用范围、生命周期等等。1、作用范围 全局变量是在整个程序中都可以访问的变量,而局部变量仅在定义它的函数或代码块内部有效。这意味着全局变量的作用范围更广,而局部变量的作用范围更有限。这种作用范围的差异使得全局变量可以在程序的任何地方被访问和修改,而局部变量只能在...

全局变量和局部变量的区别是什么?
1、作用域差异:全局变量能在整个程序中任意位置被访问,而局部变量仅在声明它们的函数或循环体内可用。2、内存存储差异:全局变量在程序启动时分配在全局数据区,而局部变量则在函数调用时在栈区临时分配空间。3、生命周期差异:全局变量的存在周期与整个程序一致,直到程序终止;局部变量仅在相应的函数或...

全局变量和局部变量有什么区别
全局变量和局部变量的区别是作用区域不同、二生命周期不同、内存储存的地方不同、使用方式不同,具体如下:1、作用区域不同:全局变量9作用于整个程序,而局部变量作用于函数或循环之中。2、二生命周期不同:全局变量随着程序的开始而开始,程序的结束而销毁,局部变量随着作用的函数或循环的结束而销毁。...

局部变量和全局变量的区别
1. 作用范围不同:局部变量仅在其定义的函数或代码块内部有效,离开该范围后无法访问。全局变量则在整个程序执行期间都可见,并在任意函数中均可访问。2. 内存分配方式不同:局部变量通常在函数调用时创建,函数执行完毕后销毁,生命周期短暂,占用的内存空间随之释放。全局变量在整个程序运行期间持续存在,...

相似回答