C++静态变量和静态数据成员区别及外部变量和自动变量使用

本文详细介绍了C++中的静态变量、静态数据成员、外部变量和自动变量的区别。静态变量在函数调用结束后仍存在,且只初始化一次;静态数据成员属于类,所有对象共享。外部变量通过extern声明,用于跨文件访问全局变量;自动变量(auto)在C++98中指局部变量,C++11中引入了根据初始值推断类型的特性。
摘要由CSDN通过智能技术生成

一、静态变量:

在了解静态变量之前,读者需要知道什么是全局变量和局部变量。局部变量直至定义在函数内部的变量,在函数调用结束后,局部变量将消失。全局变量是指在函数体外定义的变量,它的生命期随着程序的结束而结束。

对于静态变量读者可以简单粗暴地理解为全局变量,但是二者又有区别。如果定义一个静态的局部变量,它的生命期在函数调用结束后依然存在,在下次调用函数时,会依然保存上一次函数调用结束之后的值。并且,对于静态变量只执行一次初始化(无论函数调用多少次)。在 C++中静态变量是使用 static 关键字来定义的。

void Invoke()
{
    static int s_nNum = 0;  //定义静态局部变量
    cout << s_nNum << endl;
    s_nNum++;
}

int main()
{
    for(int i = 0; i < 10; i++)
        Invoke();
    return 0;
}

注:对于普通的局部变量,在函数调用时每次都会执行初始化操作,并且在函数调用结束后被销毁。对于全局变量来说,不仅能够够在当前文件中使用,而且还可以在其他文件中被使用。但是全局静态变量则不同,它的作用域是当前定义全局静态变量处到当前文件的结束,不能够在其他文件中访问全局静态变量。

二、静态数据成员

在类中使用 static 关键字将数据成员定义为静态成员。静

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值