解析 答: 这两者在存储方式上并无不同,都是静态存储方式。这两者的区别在于普通全局变量的作用域可以用extern扩展到同一个程序的其他源程序中 而静态全局变量则限制了其作用域, 不能用extern扩展其作用域到同一个程序的其他源文件中。 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。
1. 全局变量和静态局部变量具有文件作用域; 2. 普通局部变量具有函数作用域或者块作用域。
1、全局变量在整个工程文件内都有效; 2、静态全局变量只在定义它的文件内有效; 3、静态局部变量只在定义它的函数内有效,且程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。 4、全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。
1 生命周期不同 2 分配时间不同 3 分配位置不同。而另外三个,在这几项上是相同的,之间的区别在于作用域。全局变量,作用域为整个项目,不管在哪个文件中,只要声明后都可以使用。静态全局变量,作用域为定义改变量的所在文件。而静态局部变量,作用域与普通局部变量一样,都是定义位置到所在大括号结...
而真正的区别在于他们的作用域。静态局部变量的作用域是在于定义它的那个函数内。由于其在编译时编译器就给他们分配了地址,并且做了初始化,所以它只能被初始化一次,而且看起来的顺序是程序每执行到这个函数时,都会执行那条定义语句,其实 并!没!有! 因为它已经被分配地址了,而且始终驻留在RAM中。
而真正的区别在于他们的作用域。静态局部变量的作用域是在于定义它的那个函数内。由于其在编译时编译器就...
存在于全局数据区,但是对外部文件隐藏,只在本文文件中可见,不同文件可以用static声明同名的全局变量,如下图所示: 2 static关键词修饰局部变量 普通局部变量:普通局部变量在函数体内声明,存在于栈区,在函数调用时创建,函数返回时销毁。如下图所示: 静态局部变量:静态局部变量在函数体内声明,存在于全局区,在编译期创建...
而真正的区别在于他们的作用域。静态局部变量的作用域是在于定义它的那个函数内。由于其在编译时编译器就...
局部变量存放在内存的栈区 作用域: 全局变量在整个工程文件里都有效; 静态全局变量只在定义的文件内有效 静态局部变量只在定义的函数内有效,且程序仅分配一次内存,函数返回后,变量不会消失; 局部变量在定义的函数内有效,但函数返回后失效 全局变量、静态变量如果没有手动初始化,由编译器初始化为0,局部变量的值不可...