C++变量 声明、初始化、定义

本文深入探讨了变量与对象的概念,包括它们的数据类型、内存分配、作用域及生命周期,并详细解释了变量的定义、声明和初始化过程。此外还介绍了初始化与赋值的区别,以及不同初始化方式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量提供一个具名的可供程序操作的存储空间

变量都有其数据类型,其数据类型决定着变量所占内存空间的大小布局方式该空间存储的值的范围变量能参与的运算

对象是指一块能存储数据并具有某种类型的内存空间

一般情况下使用对象这个词,不严格区分是类还是内置类型,也不区分是否命名或是否只读。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

变量定义、声明、初始化:

初始化和赋值是两个完全不同的操作。

初始化是创建变量时赋予一个初始值,赋值是把对象的当前值擦除,以一个新值来替代。

初始化方式:

以整数为例显示初始化

int a = 0, a(0); //两种初始化等同

int a{0}, a = {0}; //列表初始化:作为C++11新标准的一部分,花括号来初始化变量得到了应用, 在C++11之前,列表初始化尽在某些受限的场合下才能使用。

默认初始化:定义变量时没有指定初始值。

内置类型变量默认初始值取决于变量位置:函数之外初始化为0, 函数之内不初始化

类类型变量是否能默认初始以及默认初始值取决于类型。

=================================================================================================================

声明和定义的关系:

声明规定了变量的类型和名字,定义申请存储空间。

想声明而非定义一个变量,添加extern关键字,extern声明变量并初始化时即变成定义

定义一次,声明可多次。


C++中,结构体是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起。为了声明一个结构体并初始化其中的变量,你可以按照以下步骤操作: ### 1. **结构体声明** 首先需要定义结构体。可以使用`struct`关键字来创建一个新的数据类型,并为其成员指定名称和类型。 ```cpp #include <iostream> using namespace std; // 定义一个名为Person的结构体 struct Person { string name; // 成员变量name是一个字符串类型的 int age; // 成员变量age是一个整数类型的 // 构造函数用于初始化成员变量 Person(string n = "", int a = 0) : name(n), age(a) {} }; ``` 在这个例子中,我们不仅定义了两个成员变量——`name` 和 `age`, 还添加了一个构造函数 (带默认参数),这使得我们可以更方便地初始化新实例。 ### 2. **变量初始化** 有多种方法可以在创建结构体对象时对其内部字段进行赋初: #### 使用直接初始化语法: 当你创建结构体的一个实例并且同时给它的每个属性设置初始得时候可以直接这样做, ```cpp int main() { // 直接通过构造函数来进行初始化 Person person("张三", 30); cout << "姓名:" << person.name << endl; cout << "年龄:" << person.age << endl; return 0; } ``` #### 声明时不初始化,在后续再单独赋: 也可以先声明而不在那个时候立即给予具体的数, ```cpp int main(){ Person anotherPerson; // 创建但未初始化 anotherPerson.name="李四"; // 后续分别对各属性赋 anotherPerson.age=45; cout << "姓名:" << anotherPerson.name << endl; cout << "年龄:" << anotherPerson.age << endl; return 0; } ``` 此外还可以考虑利用列表初始化、统一初始化等其他方式进行变量初始化。 --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值