11.5 静态变量

发布于 28 天前  21 次阅读


这个老师突然提了静态变量这个概念,我里面想到了上个文章说的清空弹夹这个问题

我可不可以将sum定义成一个静态变量,而不是清空弹夹?

答案是不能。我便开始了解有关静态变量的知识

在 C 语言中,静态变量是指在函数内部或外部声明时(听君一席话,如听一席话)使用 static 关键字修饰的变量

1. 作用域

  • 局部静态变量:如果在函数内部声明一个静态变量,它的作用域仅限于函数。这意味着你只能在该函数内部访问这个变量(这个。。。没啥好说的,局部变量不都是这样吗。。?)
  • 全局静态变量:如果在函数外部声明一个静态变量,它的作用域是整个文件,但不能被其他文件访问(即使它在其他文件中被引用)(这就是格局,我格局打开了,又不是只有“源.c”)

2. 生命周期

  • 静态变量的生命周期是整个程序运行期间。无论函数被调用多少次,在每一次调用后都将保持最后的值

简而言之,静态变量主要的特点是在作用域中每次使用后(函数返回、走完全部代码后)风采依旧

在后续的函数调用中,静态变量会保持上一次的值(记住,不是初始化的值

静态变量的BUG是 静态变量,只会初始化一次,这也是它能进行风采依旧的原因(但是,如果你手贱又在static xxx后面加上xxx =某某某,就又赋值了,懂吧

届ける言葉を今は育ててる
最后更新于 2024-11-05