今天带你学会C语言静态变量知识!另外平安夜快乐哦~编程
静态变量具备即便超出范围也能保留其值的属性!所以,静态变量在其先前的做用域中保留其先前的值,而不会在新的做用域中再次初始化。微信
句法:函数
静态数据类型var_name = var_value;学习
如下是有关C中静态变量的一些有趣事实。spa
1)程序运行时,静态int变量保留在内存中。当声明了该变量的函数调用结束时,普通或自动变量将被破坏。3d
例如,咱们能够使用static int来计数一个函数被调用的次数,可是自动变量不能用于此目的。视频
例以下面的程序打印“ 1 2”blog
输出:1 2教程
可是下面的程序打印1 1内存
输出:1 1
2)静态变量是在数据段而不是堆栈段中分配的内存。
3)若是未显式初始化静态变量(如全局变量),则初始化为0。例如,在下面的程序中,x的值打印为0,而y的值则是垃圾。
输出:0 [some_garbage_value]
4)在C语言中,只能使用常量文字初始化静态变量。
请注意,这种状况在C ++中不成立。所以,若是将程序另存为C ++程序,它将编译并运行正常。
5)在C / C ++中,静态全局变量和函数也是可能的。这样作的目的是将变量或函数的范围限制为文件。
6)静态变量不该在结构内部声明。缘由是C编译器要求将整个结构元素放在一块儿(即,结构成员的内存分配应该是连续的)。能够在函数内部声明结构(堆栈段)或动态分配内存(堆段),甚至能够是全局的(BSS或数据段)。不管哪一种状况,全部结构成员都应驻留在同一内存段中,由于结构元素的值是经过计算元素相对于结构起始地址的偏移量来获取的。单独将一个成员分离到数据段将破坏静态变量的目的,而且可能使整个结构为静态。
但愿对你们有帮助!
另外若是你想更好的提高你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许能够帮到你~
C语言C++编程学习交流圈子,QQ群1090842465【点击进入】微信公众号:C语言编程学习基地
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!
编程学习书籍分享:
编程学习视频分享: