【Primer C++】第二章:变量和基本类型

本文深入探讨C++中变量的声明、定义、初始化及作用域规则,解析引用与指针的区别,介绍自定义数据结构的创建与初始化,并讨论预处理功能在避免重复包含头文件中的应用。

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

使用列表初始化初始化内置类型时,若存在丢失信息的风险,编译器将会报错:

long double ld = 3.1415926536;

int b = { ld };

默认初始化

变量的默认值与变量类型和变量所处的位置有关,

  • 定义于任何函数之外的变量被初始化为0;
  • 定义在函数体内部的内置类型变量将不被初始化

变量的声明和定义

变量的声明:

extern int i;

变量的声明则是:在变量名前面添加关键字extern并且不能显示地初始化变量;并且在函数体内部,不能初始化由extern关键字标记的变量

当为变量赋初始值时:

extern double pi = 3.1416; //将会抵消extern的作用,从而转变为定义

int j; //声明并定义

名字的作用域

int reused = 42;

int main()
{
	int reused = 1;

	std::cout << reused << std::endl;

	std::cout << ::reused << std::endl;	// 全局作用域本身没有名字,当操作符的左侧为空时,将会向全局作用域请求获取变量的值

}

复合类型

引用(左值引用)

引用并非对象。

在初始化变量时,初始值会被拷贝到新建的对象中;定义引用时,程序把引用和它的初始值绑定,而非拷贝。一旦初始化完成,将会和它的初始值对象一直绑定在一起。因此无法令引用重新绑定到另外一个对象,因此引用必须初始化。

int &ai = 10; //错误
const int &ab = 10; //正确
指针

指针本身就是一个对象。

设置为空指针:
int *p1 = nullptr;
int *p2 = 0;
// 需要首先包含#include cstdlib
int *p3 = NULL; // NULL为预处理变量

void*指针:可存放任意对象的地址

指向指针的引用:

int i = 42;
int *p;
int *&r = p;

要理解r的类型到底是什么,简单的方法时从右向左阅读r的定义:距离变量名最近的符号对变量的类型具有最直接的影响,因此r是一个引用,声明符的其余部分确定r引用的类型。

自定义数据结构

struct Sales_data {/*......*/} accm, trans, *salesptr; //最后的分号不要忘记

C++11新标准规定,可以为数据成员提供一个类内初始值,创建对象时,类内初始值用于初始化数据成员。

预处理功能(头文件保护符)

#ifndef XXX
#define XXX
 ......
#endif
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、COSO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析模拟,揭示了生物质炉具在实际应用中的优点挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值