static静态局部变量和静态全局变量的区别详解

1、定义:在函数内部定义的静态变量,使用关键字
static进行修饰。,2、存储位置:静态局部变量的存储位置是在栈区。,3、生命周期:静态局部变量的生命周期是从程序开始到程序结束。,4、初始化:静态局部变量在定义时可以初始化,如果没有初始化,系统会自动初始化为0。,5、作用域:静态局部变量的作用域仅限于定义它的函数内部。,6、访问方式:静态局部变量可以通过作用域解析符
::进行访问。,1、定义:在函数外部定义的静态变量,使用关键字
static进行修饰。,2、存储位置:静态全局变量的存储位置是在全局数据区。,3、生命周期:静态全局变量的生命周期是从程序开始到程序结束。,4、初始化:静态全局变量在定义时可以初始化,如果没有初始化,系统会自动初始化为0。,5、作用域:静态全局变量的作用域是整个程序。,6、访问方式:静态全局变量可以直接通过变量名进行访问。,1、存储位置不同,静态局部变量:栈区,静态全局变量:全局数据区,2、作用域不同,静态局部变量:仅在定义它的函数内部可见,静态全局变量:在整个程序中可见,3、初始化不同,静态局部变量:可以在定义时初始化,也可以在声明时初始化,还可以在使用前初始化,静态全局变量:可以在定义时初始化,也可以在使用前初始化,4、生命周期不同,静态局部变量:从程序开始到程序结束,静态全局变量:从程序开始到程序结束,
,#include <iostream> using namespace std; // 静态局部变量示例 void func() { static int count = 0; // 定义静态局部变量count,并初始化为0 count++; // count自增1 cout << “count: ” << count << endl; } int main() { for (int i = 0; i < 5; i++) { func(); // 调用func函数,输出count的值 } return 0; },#include <iostream> using namespace std; // 静态全局变量示例 static int global_count = 0; // 定义静态全局变量global_count,并初始化为0 void func() { global_count++; // global_count自增1 cout << “global_count: ” << global_count << endl; } int main() { for (int i = 0; i < 5; i++) { func(); // 调用func函数,输出global_count的值 } return 0; },

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《static静态局部变量和静态全局变量的区别详解》
文章链接:https://zhuji.vsping.com/424714.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。