打印
[牛人杂谈]

C语言中局部变量和全局变量是否可以重名?

[复制链接]
2055|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21mengnan|  楼主 | 2024-9-8 20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以重名
在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量。
他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量。


使用特权

评论回复
沙发
21mengnan|  楼主 | 2024-9-8 20:19 | 只看该作者
局部变量的生命周期只在函数内部,如果出了函数,局部变量就会销毁

全局变量的生命周期在程序的整个执行的过程中都是可见的,程序执行完成后,则销毁

当在函数中访问一个变量时, 编译器首先会在函数内查找变量,如果找到了,则使用局部变量, 如果没找到,则会在函数外部, 找这个变量, 直到找到该变量, 或者到达了最顶层的全局作用域

如果重名, 会带来一些潜在的问题, 为了避免数据的混淆,通常时不建议局部变量和全局变量重名的, 清晰的变量名,可以反应对应的意义。

使用特权

评论回复
板凳
gaoyang9992006| | 2024-9-10 11:09 | 只看该作者
不建议这么用。如果怕记不住,每一个局部变量都用该函数名字做开头或者某个关键词做首字符。

使用特权

评论回复
地板
我喜欢打游戏| | 2024-9-10 16:06 | 只看该作者
编译器不会报错,但是会存在数据覆盖

使用特权

评论回复
5
AloneKaven| | 2024-9-11 21:22 | 只看该作者
c语言里全局变量重名会默认使用局部变量

使用特权

评论回复
6
vivilyly| | 2024-9-13 22:03 | 只看该作者
在C语言中,局部变量和全局变量是可以重名的。

使用特权

评论回复
7
i1mcu| | 2024-9-14 17:14 | 只看该作者
当局部变量与全局变量同名时,局部变量在其作用域内会屏蔽全局变量。

使用特权

评论回复
8
sesefadou| | 2024-9-14 18:54 | 只看该作者
建议为局部变量和全局变量选择不同的名称

使用特权

评论回复
9
jimmhu| | 2024-9-14 21:41 | 只看该作者
如果不小心在函数中使用了与全局变量重名的局部变量,并且期望访问全局变量,可能会导致意外的结果。在调试代码时,需要注意这种情况,确保正确地访问所需的变量。

使用特权

评论回复
10
sdlls| | 2024-9-15 08:30 | 只看该作者
在函数内部引用一个变量时,编译器会优先查找该函数内的局部变量。如果找不到,它会去查找全局变量。

使用特权

评论回复
11
maudlu| | 2024-9-15 10:42 | 只看该作者
全局变量在程序启动时创建,在程序结束时销毁。它们可以被多个函数共享,用于在不同部分的程序之间传递数据或保存状态信息。

使用特权

评论回复
12
maqianqu| | 2024-9-15 12:56 | 只看该作者
在函数内部使用了与全局变量同名的局部变量,那么在该函数内,局部变量将覆盖全局变量。

使用特权

评论回复
13
deliahouse887| | 2024-9-15 14:51 | 只看该作者
当局部变量和全局变量同名时,在局部变量的作用域内,局部变量会覆盖全局变量。也就是说,在函数或代码块内部,使用该变量名时,实际上访问的是局部变量,而不是全局变量。

使用特权

评论回复
14
earlmax| | 2024-9-15 18:30 | 只看该作者
在局部变量的作用域内,对该变量名的任何引用都将指向局部变量,而不是全局变量。

使用特权

评论回复
15
burgessmaggie| | 2024-9-15 21:41 | 只看该作者
这种情况下,当局部变量的作用域被激活时,它会隐藏(或者说屏蔽)同名的全局变量。这意味着在局部变量的作用域内,对该变量名的引用将解析为局部变量,而不是全局变量。

使用特权

评论回复
16
jtracy3| | 2024-9-16 08:26 | 只看该作者
全局变量通常存储在程序的全局数据区,占用固定的内存空间。

使用特权

评论回复
17
weifeng90| | 2024-9-16 10:16 | 只看该作者
最好是不要重名,程序可读性不高。

使用特权

评论回复
18
timfordlare| | 2024-9-16 12:00 | 只看该作者
单片机C语言中局部变量和全局变量可以重名,但在实际编程中应谨慎使用

使用特权

评论回复
19
ulystronglll| | 2024-9-16 14:35 | 只看该作者
局部变量是在函数内部定义的变量,它只在该函数内部有效。当函数执行完毕后,局部变量会被销毁。

使用特权

评论回复
20
kkzz| | 2024-9-16 16:39 | 只看该作者
在单片机 C 语言中,局部变量和全局变量可以重名,但在使用时需要注意作用域和访问规则,以避免潜在的混淆和错误。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

980

帖子

1

粉丝