C++中static关键字的用法

运行一个完整的程序。我们可将整个存储区分为四块:

(1)栈区:就比如局部变量,对应的函数参数等这些,调用完之后相应的内存会自己释放掉,很让人省心。

(2)堆区:堆来堆去的。得要人动手。所以得我们自己手动去分配和释放。像malloc(c),new(c++) ,delete 一下等等。

(3)全局数据(静态区):全局变量和静态变量是放在一个窝里面的。静态变量如果没有初始化,系统会自动初始化的。虽然系统会自动初始化,但是分房间的时候还是得分清楚的。所以最终是初始化的全局变量和初始化的静态变量分在一块区域,即同一个房间。未初始化的全局变量和未初始化的静态变量分在一块。程序结束时释放。

(4)最后就是代码区了

staic主要由三种用法:

(a)如果用static修饰局部函数的变量。那么这个变量就是静态变量了。在主函数中,如果重复调用这个函数,那么里面的这个静态变量只会初始化一次。如果没有用static修饰,那么每次

  调用的时候都会对这个变量进行初始化。

(b)如果用static修饰全局的变量。那么在这个文件中所有的函数都可以使用这个变量。如果一个工程里面有a.c和b.c文件,static在a.c中定义的。那么b.c就用不了这个static修饰的变量。如果没有

  static修饰,只要加一个extern外部调用声明,就可以了。

扫描二维码关注公众号,回复: 9420026 查看本文章

(c)如果用static修饰全局函数,同上(b)。

以上为个人整理所写,如有错误,欢迎各位批评指正。

猜你喜欢

转载自www.cnblogs.com/strangemonkey/p/12366903.html
今日推荐