美图齐众专注资阳网站设计 资阳网站制作 资阳网站建设
资阳网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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

静态局部变量

1、定义:在函数内部定义的静态变量,使用关键字static进行修饰。

成都创新互联-专业网站定制、快速模板网站建设、高性价比甘泉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式甘泉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖甘泉地区。费用合理售后完善,10年实体公司更值得信赖。

2、存储位置:静态局部变量的存储位置是在栈区。

3、生命周期:静态局部变量的生命周期是从程序开始到程序结束。

4、初始化:静态局部变量在定义时可以初始化,如果没有初始化,系统会自动初始化为0。

5、作用域:静态局部变量的作用域仅限于定义它的函数内部。

6、访问方式:静态局部变量可以通过作用域解析符::进行访问。

静态全局变量

1、定义:在函数外部定义的静态变量,使用关键字static进行修饰。

2、存储位置:静态全局变量的存储位置是在全局数据区。

3、生命周期:静态全局变量的生命周期是从程序开始到程序结束。

4、初始化:静态全局变量在定义时可以初始化,如果没有初始化,系统会自动初始化为0。

5、作用域:静态全局变量的作用域是整个程序。

6、访问方式:静态全局变量可以直接通过变量名进行访问。

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

1、存储位置不同

静态局部变量:栈区

静态全局变量:全局数据区

2、作用域不同

静态局部变量:仅在定义它的函数内部可见

静态全局变量:在整个程序中可见

3、初始化不同

静态局部变量:可以在定义时初始化,也可以在声明时初始化,还可以在使用前初始化

静态全局变量:可以在定义时初始化,也可以在使用前初始化

4、生命周期不同

静态局部变量:从程序开始到程序结束

静态全局变量:从程序开始到程序结束

使用示例

#include 
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 
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;
}

当前文章:static静态局部变量和静态全局变量的区别详解
浏览路径:http://www.zsjierui.cn/article/ccoodjc.html

其他资讯