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<<后面参数也符合函数参数执行顺序规则,从右至左