2016 - 2024

感恩一路有你

全局变量 局部变量 C语言全局变量和局部变量会冲突吗?为什么?

浏览量:2508 时间:2021-03-14 05:56:22 作者:admin

C语言全局变量和局部变量会冲突吗?为什么?

在C语言中,这取决于如何放置全局变量和局部变量。如果将全局变量和局部变量放在一个代码文件中,则会发生冲突。所以不明显,我将编写一个C程序代码,如下图所示:

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

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

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

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

局部变量是否只能在某个函数中定义并且只能在该函数中使用?

无效。

首先,很明显,子函数和调用此函数的函数(相对意义上的主函数)是两个不同的函数。

标准C/C不支持本地功能。函数中定义的对象的名称具有函数作用域,有效范围从定义开始到函数体的结尾,与其他函数中的名称无关。即使两个函数是用相同的标识符定义的,它们也是两个不同的名称(在C语言中可以保证不同的对象;C引用可能指向同一个实体),并且有各自的函数作用域。如果可以引用在不同函数中表示同一实体的名称,则该名称只能表示一个全局对象(或C中两个函数的类/命名空间中的公共对象)。

如果名称在循环/语句块中定义,ISO C90(不支持循环开头的定义)从定义开始到函数体的结尾,ISO C99/ISO C从定义开始到循环/语句块的结尾。

===

[原始答案组

局部变量和全局变量的区别是什么?

1)局部变量仅在此函数范围内有效,不能在此函数之外使用;全局变量的有效范围是从定义变量的位置到原始源文件的结尾。2) 局部变量在程序运行到函数时为变量分配内存空间,函数结束时释放内存空间;全局变量在程序运行前分配内存空间,程序结束时释放内存空间。

全局变量 局部变量 局部变量缺省情况下都是静态变量 静态局部变量举例

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