C语言中static是做什么用的?
看网上说法不一。如果是为程序中的通用变量定义的话(就像VB中的Public一样)。那指针不是也可以么?还有。在main()之外定义变量不是也可以整个程序通用么?...
看网上说法不一。如果是为程序中的通用变量定义的话(就像VB中的Public一样)。那指针不是也可以么?还有。在main()之外定义变量不是也可以整个程序通用么?
展开
6个回答
展开全部
声明静态局部变量。
有时候希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定局部变量为静态局部变量,例子如下:
#include<iostream>
using namespace std;
int f(int a )
{
auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main()
{
int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<"";
cout<<endl;
return 0;
}
运行结果为
7 8 9
有时候希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定局部变量为静态局部变量,例子如下:
#include<iostream>
using namespace std;
int f(int a )
{
auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return a+b+c;
}
int main()
{
int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<"";
cout<<endl;
return 0;
}
运行结果为
7 8 9
参考资料: c++程序设计 谭浩强 编著
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询