网站建设风险管理计划书,户外媒体网站建设免费,漯河最新今天的消息,免费网站模板 怎么用本文地址#xff1a;http://blog.csdn.net/sushengmiyan/article/details/20305815 作者#xff1a;sushengmiyan 一。静态变量#xff1a; 局部变量是线程到达定义的地方的时候进行初始化#xff0c;如果定义在函数中#xff0c;那么每次函数调用的时候#xff0c;都会进… 本文地址http://blog.csdn.net/sushengmiyan/article/details/20305815 作者sushengmiyan 一。静态变量 局部变量是线程到达定义的地方的时候进行初始化如果定义在函数中那么每次函数调用的时候都会进行初始化函数的每个调用保留着一个副本对于静态变量来说只在第一次调用的时候初始化。通过下面一个例子可以细细体会这个区别 // sushengmiyanTest.cpp : 定义控制台应用程序的入口点。
//#include stdafx.h
#include iostream
using namespace std;void f(int a)
{while(a--){static int n 0;int x 0;coutnn ,xx\n;}
}int _tmain(int argc, _TCHAR* argv[])
{//couthello world \n;f(3);system(pause);return 0;
}通过运行结果可以看出n是静态变量虽然每次调用函数了但是只是一次初始化后面执行n之后值就是n的值再次调用也不会初始化对于x来说是局部变量每次调用都会初始化一下所以每次都是0. 二。参数传递 // sushengmiyanTest.cpp : 定义控制台应用程序的入口点。
//#include stdafx.h
#include iostream
using namespace std;void f(int a)
{while(a--){static int n 0;int x 0;coutnn ,xx\n;}
}void fuc(int m, int n)
{m;n;
}int _tmain(int argc, _TCHAR* argv[])
{int a 3;int b 3;//couthello world \n;fuc(a, b);coutaa ,bb\n;system(pause);return 0;
}先看这个例子结果如下 通过这例子可以看出经过函数调用初始化的时候同样是3 第一个参数是形式参数传入之后对其进行操作只在函数内部发生作用函数外部值不会发生变化对于第二个参数是传地址的就是我修改了之后呢内存中这个值也就发生了变化再获取的时候就是函数内部操作之后的数值了。 所以输出的是a 3,b4. 转载于:https://www.cnblogs.com/muyuge/p/6152529.html