转自:
在函数里面声明:
static int 静态变量,会在静态存储区只进行一次初始化,下次调用直接赋值
int 每次调用都初始化一次,分配不同的内存地址
void f1()
{
static int i;
i=1;
if(i==1)
{
MessageBox("a");
i=2;
}
}
void f2()
{
static int i=1;
if(i==1)
{
MessageBox("a");
i=2;
}
}
f1是定义一个static 的 i 没有赋值 然后每次调用f1 i的值都赋1
f2顶一个static i 初值为 1
调用f2是只在第一次 static i=1 即初值为1 所以说
if(i==1)
{
MessageBox("a");
i=2;
}
只有一次为真
本文探讨了C/C++中静态变量的初始化方式及其行为差异。通过两个示例函数f1和f2,阐述了static关键字在函数内部使用时,变量如何进行初始化及后续调用过程中的值变化规律。
7549

被折叠的 条评论
为什么被折叠?



