2016 - 2024

感恩一路有你

c语言静态全局变量 C语言静态局部变量和全局变量有什么区别?

浏览量:2694 时间:2021-03-12 06:24:45 作者:admin

C语言静态局部变量和全局变量有什么区别?

静态变量是一个静态修改的变量,当它被定义时,以静态类型varuName=inituValue的形式,动态变量以类型varuName=inituValue的形式表示没有静态修改。其中=初始值可以省略。区分函数外部定义的全局变量和函数内部没有显式初始化的局部变量、作用域、生命周期和初始值。

动态全局变量:作用域是整个项目,即编译成可执行文件的所有文件都可以使用动态全局变量。生命周期是从程序运行到程序退出的过程,贯穿于程序运行的全过程。没有显式初始化时,默认初始化值为0。

2静态全局变量:范围是从定义/声明位置到文件结尾的当前文件。生命周期是从程序运行到程序退出的过程,贯穿于程序运行的全过程。没有显式初始化时,默认初始化值为0。

动态局部变量:范围是当前函数,从定义的位置到{}的结束位置。生命周期是从函数调用到函数退出。当没有显式初始化时,默认的初始化值是random。

静态局部变量:范围是当前函数,从定义的位置到{}的结束位置。生命周期是从程序运行到程序退出,即贯穿整个运行时间。在下一次函数调用时,静态局部变量不会再次初始化,但将使用最后一个函数exit的值。没有显式初始化时,默认初始化值为0。

C语言中的静态变量?

Static关键字用于在C语言中声明静态局部变量。函数:有时您希望函数中的局部变量的值在函数调用结束后不消失,而是保持其原始值,即它占用的存储单元不会被释放。下次再次调用函数时,变量已经有一个值(即上一次函数调用结束时的值)。此时,应该将局部变量指定为“static local variable”,并用关键字static声明它。静态存储需要占用更多的内存(长期占用不会释放,但不像动态存储。存储单元可连续用于多个变量(以节省内存),并降低程序的可读性。因此,如果没有必要,不要使用更多的静态局部变量。

C语言:各函数内部定义的静态局部变量可否同名?

可以,静态局部变量在函数调用结束后仍然存在,其内存空间不会被释放,但其他函数不能引用它。因为它是局部变量,所以只能由该函数引用,而不能由其他函数引用。因此,可以在其他函数中使用相同的名称命名变量。在C语言中,这取决于如何放置全局变量和局部变量。如果将全局变量和局部变量放在一个代码文件中,则会发生冲突。所以不明显,我将编写一个C程序代码,如下图所示:

在这个C程序中,我在main函数外定义了一个全局变量para,并给出一个初始值1。在C程序的主函数中,我定义了一个变量para,它与主函数外的变量同名。

这里,C程序主函数外的变量的生命周期在整个代码中是有效的,而主函数的变量只在主函数中有效。

也就是说,当您在C程序的主函数中操作para变量时,实际上是在主函数中操作变量,而外部para变量的值仍然是1。在这个C程序中,main函数中的para变量隐藏了外部变量para。

因此,学生在学习C语言时,必须注意全局变量被同名局部变量覆盖的问题,还要了解变量的范围和生命周期。

c语言静态全局变量 局部静态变量只初始化一次 c语言static的作用举例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。