打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++ 全局变量、静态全局变量和静态局部变量的异同?能结合代码详细分析一下吗?谢谢 - 已...

全局变量与静态全局变量的主要区别是:作用域不同.

全局变量的作用域不仅在本文件中可以使用,在其他文件中也可以使用.但静态全局变量只能在本文件中使用.

如假设在1.cpp里定义了一个全局变量int g_val=1;一个静态全局变量int s_val=2

在2.cpp里可以正常使用g_val这个变量,但是不能访问s_val这个变量.

//1.cpp

#include<iostream>
using namespace std;

int g_val=1;
static int s_val=2;
int main()
{
return 0;

}
//2.cpp

extern int g_val;//要加extern关键字
extern int s_val;//虽然这个也可引用
void test()
{
 g_val=0;
 s_val=3;//这里访问出错.
}

 

静态局部变量与一般局部变量的区别就是:生存期不同

静态局部变量的生存期在程序运行期间都存在,下一次会引用上次访问的值.

#include<iostream>
using namespace std;
void fun()
{
 int i=0;//下一次进来的时候这步仍执行,即i又变回0
 static int val=0;//只初始化一次,下一次进来这个函数的时候,val的值是引用上次的值.而不是0
 val++;
 i++;
 cout<<"静态局部变量:"<<val<<endl;
 cout<<"一般局部变量:"<<i<<endl;

}
int main()
{
 fun();
 fun();
 return 0;

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
静态局部变量初始化次数的控制
C++中static用法详解
50道c++面试题
c语言中static 用法
python变量之全局变量与局部变量的使用
编程语言C语言 全局变量和局部变量区别 - C语言零基础入门教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服