这个老师突然提了静态变量这个概念,我里面想到了上个文章说的清空弹夹这个问题
我可不可以将sum定义成一个静态变量,而不是清空弹夹?
答案是不能。我便开始了解有关静态变量的知识
在 C 语言中,静态变量是指在函数内部或外部声明时(听君一席话,如听一席话)使用 static
关键字修饰的变量
1. 作用域
- 局部静态变量:如果在函数内部声明一个静态变量,它的作用域仅限于该函数。这意味着你只能在该函数内部访问这个变量(这个。。。没啥好说的,局部变量不都是这样吗。。?)
- 全局静态变量:如果在函数外部声明一个静态变量,它的作用域是整个文件,但不能被其他文件访问(即使它在其他文件中被引用)(这就是格局,我格局打开了,又不是只有“源.c”)
2. 生命周期
- 静态变量的生命周期是整个程序运行期间。无论函数被调用多少次,在每一次调用后都将保持最后的值
简而言之,静态变量主要的特点是在作用域中每次使用后(函数返回、走完全部代码后)将风采依旧
在后续的函数调用中,静态变量会保持上一次的值(记住,不是初始化的值)
静态变量的BUG是 静态变量,只会初始化一次,这也是它能进行风采依旧的原因(但是,如果你手贱又在static xxx后面加上xxx =某某某,就又赋值了,懂吧)
Comments NOTHING