C++ 全局变量、静态全局变量和静态局部变量的异同
来源:互联网 发布:电脑时间和网络不同步 编辑:程序博客网 时间:2024/06/05 13:22
全局变量与静态全局变量的主要区别是:作用域不同.
全局变量的作用域不仅在本文件中可以使用,在其他文件中也可以使用.但静态全局变量只能在本文件中使用.
如假设在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;
}
- C++ 全局变量、静态全局变量和静态局部变量的异同
- 局部变量、全局变量、静态局部变量、静态全局变量的异同
- 局部变量,全局变量,静态局部变量,静态全局变量的异同
- C/C++中局部变量,静态局部变量,全局变量,静态全局变量的异同
- 全局变量和静态局部变量的异同(待更新)
- 全局变量、局部变量、静态全局变量、静态局部变量、堆变量、栈变量的异同
- 全局变量、静态全局变量和静态局部变量的链接性
- C-全局变量,局部变量,静态全局变量,静态局部变量
- C++,全局变量,局部变量,静态全局变量,静态局部变量
- C语言局部变量、全局变量、静态局部变量、静态全局变量
- 全局变量和局部静态变量
- 全局变量、静态全局变量、静态局部变量和局部变量
- 全局变量、静态全局变量、静态局部变量和局部变量
- 全局变量、静态全局变量、静态局部变量和局部变量
- 全局变量、静态全局变量、局部变量和静态局部变量
- 静态局部变量和全局变量的区别!
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量 局部变量 静态全局变量 静态局部变量的区别
- 如何对付不让拷贝的网页
- [Linux]:Linux shell 的 test 命令用法详解
- Qt Creator错误:“command failed with exit code 9009, 'cl' 不是内部或外部命令,也不是可运行的程序”
- 疯狂java讲义 第三章 数据类型和运算符
- [Linux]:shell 字符串操作
- C++ 全局变量、静态全局变量和静态局部变量的异同
- class和struct区别
- Android操作嵌入式关系型SQLite数据库
- 在此分享android源码下载地址 绝对可以下
- [Linux]:linux shell 不同进制数据转换(二进制,八进制,十六进制,base64)
- uplink攻略
- [c#作业] 9.24
- MyEclipse中调试JSP的设置
- 编译出用于arm linux的gdb