![]() |
1
4
C标准没有定义 局部变量 . 自动的 和 静止的 提到 储存持续时间 .
|
![]() |
2
3
你可以把它称为“函数局部静态变量”或类似的东西,但如果你简单地把它叫做“局部变量”,你可能会发现当人们发现它实际上是静态的,因此具有全局变量的一些属性时,他们会感到惊讶。 |
![]() |
3
2
C中有两种类型的静态变量。
对于你的问题:不,变量不可能是
|
![]() |
4
2
在变量的上下文中,术语 地方的 大多数情况下表示可见性和范围,而不是存储机制和寿命。 使用术语 局部变量 事实上,在C中是不准确的,因为标准从来没有谈到过这一点。 非正式地说,函数内部的静态变量可以说是 地方的 在函数的可见范围内,但仅限于此。 我建议不要使用这个词 局部变量 完全相反,应该讨论函数中的静态变量、自动变量、文件范围中的静态参数和全局变量。 |
![]() |
5
1
静态变量存储在分配给程序的内存的数据部分。 即使静态变量的作用域结束,它仍然可以在其外部访问 范围,这可能表明,数据段的内容可能是独立的 范围内。 实例
在上面的例子中,在每次函数调用increment()之后,函数内的静态变量i在每次函数返回时都会超出作用域,但会持续 保留其价值。这是可能的,因为变量与函数不在同一堆栈上,但它完全存在于不同的内存区域,即数据段中。 |
![]() |
danny · 如何使数组或映射返回变量(而不是其值) 1 年前 |
![]() |
Sher Meen · 我需要列出一个循环中临时变量中存储的多个值 2 年前 |
![]() |
Noah Hellyer · 如何删除python中7个字符长的所有零 2 年前 |
![]() |
Gabbisen · 从列表编辑变量(不能使用字典) 2 年前 |
![]() |
cred · 为什么我请求的变量在从另一个类调用时显示为0.0? 2 年前 |
|
lorny · R循环中的自动递增变量名 6 年前 |