打印
[学习资料]

指针在全局变量与局部变量之间的差异

[复制链接]
楼主: 21mengnan
手机看帖
扫描二维码
随时随地手机跟帖
61
loutin| | 2024-6-11 19:59 | 只看该作者 回帖奖励 |倒序浏览
全局变量和局部变量的内存分配方式不同。全局变量在程序的数据段中分配内存,而局部变量在函数调用栈上分配内存。

使用特权

评论回复
62
uiint| | 2024-6-12 09:36 | 只看该作者
全局变量的生命周期从定义开始到程序结束。因此,指向全局变量的指针在整个程序执行期间保持有效。

使用特权

评论回复
63
wengh2016| | 2024-6-12 12:57 | 只看该作者
指向全局变量的指针在程序执行期间始终有效,而指向局部变量的指针仅在定义局部变量的函数执行期间有效。局部变量的生命周期结束后,指向它的指针将指向无效内存,访问这些指针可能导致未定义行为。

使用特权

评论回复
64
ingramward| | 2024-6-12 16:05 | 只看该作者
虽然一个指针可以指向一个局部变量,但需要注意的是这个局部变量的生命周期。一旦包含这个局部变量的代码块执行完毕,该局部变量所占用的内存就会被释放,而指向它的指针就会变成一个“悬空指针”(dangling pointer),即指向一个不再有效的内存地址。

使用特权

评论回复
65
uytyu| | 2024-6-12 19:11 | 只看该作者
全局变量的指针可以在整个程序范围内使用,因为全局变量在整个程序的生命周期内都存在。这意味着你可以在任何函数中创建一个指向全局变量的指针,并在程序的任何地方使用它。
局部变量的指针仅在其所在的作用域(通常是定义它的函数或代码块)内有效。局部变量在函数调用结束或相关代码块执行完毕后会被销毁,因此指向它的指针在该作用域之外使用是未定义行为,可能导致错误或崩溃。

使用特权

评论回复
66
pentruman| | 2024-6-12 22:20 | 只看该作者
全局变量如果没有显式初始化,默认值为0(对于基本类型的变量)。
局部变量如果没有初始化,则其内容是未定义的,可能是任意值。

使用特权

评论回复
67
mollylawrence| | 2024-6-13 19:34 | 只看该作者
如果需要在函数间共享数据,可以考虑使用全局变量或动态分配内存。

使用特权

评论回复
68
geraldbetty| | 2024-6-13 22:44 | 只看该作者
即使函数返回,静态局部变量的内存也不会被释放,从而可以安全地在函数外部通过指针访问。

使用特权

评论回复
69
bestwell| | 2024-6-14 08:57 | 只看该作者
在使用指针时,应确保指针指向的内存是有效的,并且注意指针的生命周期和作用域。

使用特权

评论回复
70
LinkMe| | 2024-6-14 15:24 | 只看该作者
您可以通过声明局部变量为静态的方式来延长它的生命周期,给它一个类似于全局变量的静态存储周期。

使用特权

评论回复
71
软核硬核| | 2024-6-16 11:45 | 只看该作者
不管怎样,如果程序有效,别搞砸了,好吗

使用特权

评论回复
72
LLGTR| | 2024-6-19 22:04 | 只看该作者
变量必须小心,不要乱动。

使用特权

评论回复
73
digit0| | 2024-6-21 21:24 | 只看该作者
结果是一个错误,一定是语法问题

使用特权

评论回复
74
理想阳| | 2024-7-5 20:03 | 只看该作者
这不仅适用于指向其他类型变量的指针

使用特权

评论回复
75
V853| | 2024-7-8 11:39 | 只看该作者
使用指针操作全局和局部变量时,要注意内存访问的有效性,避免出现野指针或越界访问。

使用特权

评论回复
76
21mengnan|  楼主 | 2024-7-19 11:49 | 只看该作者
V853 发表于 2024-7-8 11:39
使用指针操作全局和局部变量时,要注意内存访问的有效性,避免出现野指针或越界访问。
...

言之有理,确实可能是这个问题。

使用特权

评论回复
77
pulj2626| | 2024-8-5 03:15 | 只看该作者
看看

使用特权

评论回复
78
Pretext| | 2024-8-5 18:53 | 只看该作者
c语言中最难理解的东西之一是指针,

使用特权

评论回复
79
zj1| | 2024-8-10 12:43 | 只看该作者
看看

使用特权

评论回复
80
AloneKaven| | 2024-8-15 23:14 | 只看该作者
都可以先定义不赋值吧

使用特权

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

本版积分规则