赛博空间7号

The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge.--Stephen William Hawking

静态变量的理解

静态变量存储位置在内存静态数据区,该区域的数据在程序运行期间一直不变,一直到程序结束。


它不会因为函数的调用和退出而发生变化。由于这条原因,它可以保存最新的值


下面我们来看一段代码:

#include <iostream>

using namespace std;
#define N 25
int main()
{
    static int n=1;
    if(cout<<n<<" " && n++<N && main()){}

}

该代码结果是在屏幕打印1-N所有值。

该代码通过递归调用main()函数实现打印从1到N所有数值,关键在于静态变量n不会在main()函数调用的时候改变。


我们来一步步解析代码:

首先声明静态变量n,并给它赋值1,if函数里打印n=1,执行n++,n则变为2,然后调用main()函数,由于n是静态变量,所以n不会因main()函数的调用改变,n还是2,继续递归直到n=25达到基线条件,程序结束。

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

© 版权所有:沈阳市和平区赛博空间咨询部|辽ICP备18005891号
Powered by Z-BlogPHP & Yiwuku.com