局部静态变量 全局静态变量的区别

局部静态变量全局静态变量的区别两者有什么区别吗,注意是局部静!态!和全局静!态!即使是局部静态变量,他们的生存期不也是到文件执行结束后吗,即使退出定义这个变量的函数,内存... 局部静态变量 全局静态变量的区别两者有什么区别吗,
注意是局部静!态!和全局静!态!
即使是局部静态变量,他们的生存期不也是到文件执行结束后吗,即使退出定义这个变量的函数,内存中的值依然不会消失,
那和全局又有什么区别吗?
展开
 我来答
j88r
推荐于2018-03-19 · 知道合伙人软件行家
j88r
知道合伙人软件行家
采纳数:33317 获赞数:46473
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

局部静态变量通常放在函数内部,只能在函数内部,只进行一次初始化,每次执行函数时保持上一次执行时的值,如下代码所示:

void func() {
  static int x = 0; // 在对func的三次调用中,x只进行一次初始化
  printf("%d\n", x); // 输出x的值
  x = x + 1;
}
  
int main(int argc, char * const argv[]) {
  func(); // 输出0
  func(); // 输出1
  func(); // 输出2
  return 0;
}

全局静态变量是在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。
再多文件组成的程序里,全局变量与全局静态变量是不同的。全局静态变量使得该变量成为定义该变量的源文件所独享,使它文件不能使用。

zjfaok
推荐于2017-11-21 · TA获得超过6800个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1438万
展开全部
作用域咯

在函数外声明的变量,其作用域是从声明处到文件结束,在这个区域内的每一个函数都可以访问这个变量。而在函数内声明的变量,只有在这个函数之内才能访问
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式