首页 > 学院 > 开发设计 > 正文

神奇的static

2019-11-08 03:19:40
字体:
来源:转载
供稿:网友

C/C++中的static用法总结(一)

##static用来控制变量的存储方式可见性## 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间。在函数执行结束后,分配的空间会被立即释放掉。如何在保障函数体内变量的私有性前提下,使该变量的值保存至下一次调用的时候呢?此static就派上了用场。当需要一个数据对象为整个类而不是某个对象服务,同时又力求不破坏的封装性,即要求此成员隐藏在成员的内部,对外不可见。 要想深入了解static的机制,就要理解静态与非静态变量:静态的成员存在于内存,非静态成员需要实例化才会分配内存。所有没有加static的成员都是非静态成员。话不多说,先上程序实例帮助理解:

#include<iostream>using namespace std;//含有静态变量的函数int func_1(void) { static int static_para=0; //上面这句话在func_1第i次调用不再被执行(i>1) static_para++; return static_para;}//不含有静态变量的函数int func_2(void) { int no_static_para = 0; no_static_para++; return no_static_para;}int main() { int i, j; cout << "非静态" << " " << "静态" << endl; //设置循环,连续调用两个函数10次 for (int k = 0; k < 10; k++) { j = func_1(); i = func_2(); cout <<i<<" "<<j<<endl; } return 0;}

程序运行的结果:

Bean2017-2-15


上一篇:第四章 上机1

下一篇:单位分数

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表