LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 278|回复: 0

C++变量声明和定义之间的区别

[复制链接]
发表于 2024-1-7 14:09:44 | 显示全部楼层 |阅读模式
变量声明是指变量在首次使用之前首次声明或引入变量的部分。变量定义是为变量分配内存位置和值的部分。大多数情况下,变量声明和定义是一起完成的。
请参阅以下 C++ 程序以更好地说明:

// C++ program to show difference between
// definition and declaration of a
// variable
#include <iostream>
using namespace std;

int main()
{
    // this is declaration of variable a
    int a;

    // this is initialisation of a
    a = 10;

    // this is definition = declaration + initialisation
    int b = 20;

    // declaration and definition
    // of variable 'a123'
    char a123 = 'a';

    // This is also both declaration and definition
    // as 'c' is allocated memory and
    // assigned some garbage value.
    float c;

    // multiple declarations and definitions
    int _c, _d45, e;

    // Let us print a variable
    cout << a123 << endl;

    return 0;
}

输出
a

时间复杂度:O(1)

空间复杂度:O(1)

变量的类型
根据 C++ 中变量的范围,有三种类型的变量

局部变量
实例变量
静态变量


现在让我们详细了解这些变量中的每一个。

局部变量:在块、方法或构造函数中定义的变量称为局部变量。
这些变量是在输入到块中时创建的,或者函数在退出块后调用和销毁时,或者当调用从函数返回时。
这些变量的作用域仅存在于声明变量的块中。也就是说,我们只能在该块中访问此变量。
局部变量的初始化是强制性的。
实例变量:实例变量是非静态变量,在任何方法、构造函数或块之外的类中声明。
由于实例变量是在类中声明的,因此在创建类的对象时会创建这些变量,并在对象销毁时销毁这些变量。
与局部变量不同,我们可以对实例变量使用访问说明符。如果我们没有指定任何访问说明符,则将使用默认的访问说明符。
实例变量的初始化不是强制性的。
实例变量只能通过创建对象来访问。
静态变量:静态变量也称为类变量。
这些变量以类似方式声明为实例变量,区别在于静态变量是在任何方法构造函数或块之外的类中使用 static 关键字声明的。
与实例变量不同,无论我们创建了多少个对象,每个类只能有一个静态变量的副本。
静态变量在程序执行开始时创建,并在执行结束时自动销毁。
静态变量的初始化不是强制性的。其默认值为 0
如果我们访问静态变量,如 Instance 变量(通过对象),编译器将显示警告消息,并且不会停止程序。编译器会自动将对象名称替换为类名称。
如果我们在没有类名的情况下访问静态变量,编译器将自动附加类名。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表