1)静态变量
int g=1;
int foo_func()
{
static int val;
val=g++;
return val;
}
void main()
{
cout<<foo_func()<<foo_func()<<foo_func()<<endl; //结果 321
}如果改成
int g=1;
int foo_func()
{
static int val=g++;
return val;
}
void main()
{
cout<<foo_func()<<foo_func()<<foo_func()<<endl; //结果 111
}
结论:静态变量只会初始化一次,所以static int val=g++; 这一句只会执行一次,后面都不会再执行了,另外,cout<<后面参数也符合函数参数执行顺序规则,从右至左
本文通过两个C++示例探讨了静态局部变量的初始化过程及执行顺序。重点在于静态变量只初始化一次的特点,并解释了不同输出结果的原因。
790

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



