【Learncpp系列教程翻译】1.3变量简介(Introduction to variables)


原文链接

数据(Data)

1.1-语句和程序的结构 中,您了解到程序中的大多数指令都是语句,并且这些语句被分组为函数。这些语句的执行组成了该程序设计时预期的结果。

但是程序实际上是如何产生结果的?他们通过操纵(读取、修改和写入)数据来做到这一点。在计算机领域,数据是计算机可以移动,处理或存储的任何信息。

重点

程序是操纵数据以产生所需结果的指令的集合。

程序可以通过多种方式获取要使用的数据:从文件、数据库、网络、用户在键盘上直接输入或使用程序本身自带的程序员直接写入到源代码里的数据。在前面的教程中的“ Hello world”程序中,文字“ Hello world!”被直接插入到程序的源代码中,为程序提供数据。然后,程序通过将其发送到要显示的监视器来使用该数据。

计算机上的数据通常以对存储或计算机处理十分高效的格式存储(因此人类不可读)。因此,在编译“ Hello World”程序时,文本“ Hello world!”被转换为更高效的格式供程序使用(二进制,我们将在以后的课程中进行讨论)。


对象和变量(Objects and variables)

所有计算机都具有称为RAM(随机存取存储器的缩写)的内存,可供程序使用。您可以将RAM视为可以在程序运行时用来保存数据的邮箱(呃…带地址的内存块)。存储在内存中某处的一条数据称为值。

在某些较旧的编程语言(如Apple Basic)中,您可以直接访问这些邮箱。

在C++中,不允许直接内存访问。相反,我们通过对象间接访问内存。对象是具有值和其他关联属性(我们将在以后的课程中介绍)的存储区域(通常是内存)。定义对象后,编译器会自动确定该对象在内存中的放置位置。因此,我们可以说,去获取该对象存储的值,而不是说去获取存储在邮箱号码7532中的值,并且编译器知道在内存中的哪个位置寻找该值。这意味着我们可以专注于使用对象来存储和检索值,而不必关心它们实际放置在内存中的位置。

对象可以命名或不命名(匿名)。命名的对象称为变量,而对象的名称称为标识符。在我们的程序中,我们创建的大多数对象都是变量。

作者注

在一般编程中,术语“对象”通常是指变量、内存中的数据结构或函数。在C++中,术语“对象”具有较窄的定义,不包含函数。


变量实例化(Variable instantiation)

为了创建变量,我们使用一种称为“定义”(definition)的特殊声明语句(稍后将澄清声明(declaration)和定义之间的区别)。

这是定义名称为x的变量的示例:

int x; // define a variable named x, of type int

当编译程序时(称位编译时,compiletime),编译器看到此语句时,它会记住我们定义了一个名称为x的变量,变量类型为int(稍后将介绍更多类型)。此后,只要编译器看到标识符x,它就会知道我们正在引用此变量(有一些局限性,我们将在以后的课程中讨论)。

当程序运行时(称为运行时,runtime),该变量将被实例化。实例化(Instantiation)是一个花哨的词,表示将创建对象并为其分配一个内存地址。必须先实例化变量,然后才能将其用于存储值。举例来说,假设变量x在内存位置140处实例化,程序随后使用变量x时,它将访问内存位置140中的值。实例化的对象有时也称为实例(instance)。


数据类型(Data types)

到目前为止,我们已经介绍了变量是可以存储数据值的命名存储区域(如何存储数据是后面教程的主题)。数据类型(通常称为类型)告诉编译器变量将存储哪种类型的值(例如,数字,字母,文本等)。

在上面的示例中,变量x的类型为int,这意味着变量x将表示一个整数值。整数是不带小数部分(例如4、27、0,-2或-12)的数字。简而言之,我们可以说x是一个整数型变量。

在C++中,在编译时必须知道变量的类型,并且不重新编译程序就不能更改变量的类型。这意味着整数变量只能容纳整数值。如果您想存储其他类型的值,则需要使用其他类型变量。

整数只是C++开箱即用支持的许多类型之一。为了说明目的,这是另一个使用数据类型double定义变量的示例:

double width; // define a variable named width, of type double

C++还允许您创建自己的用户定义类型。这是我们在以后的课程中将要做的很多事情,并且是使C++强大功能的一部分。

对于这些介绍性的章节,我们将坚持使用整数变量,因为它们在概念上很简单,但是后续我们将探讨C++即将提供的许多其他类型。


定义多个变量(Defining multiple variables)

通过用逗号分隔名称,可以在单个语句中定义相同类型的多个变量。以下两个代码段实际上是相同的:

int a;
int b;

和:

int a, b;

当以这种方式定义多个变量时,新程序员往往会犯两个常见错误(都不严重,因为编译器会捕获这些错误并要求您修复它们):第一个错误是按顺序定义变量时为每个变量指定类型。

int a, int b; // wrong(compiler error)
int a, b; // correct

第二个错误是试图在同一条语句中定义不同类型的变量,这是不允许的。必须在单独的语句中定义不同类型的变量。

int a, double b; // wrong (compiler error)

int a; double b; // correct (but not recommended)

// correct and recommended (easier to read)
int a;
double b;

最佳实践

尽管语言允许您这样做,但应尽量避免在单个语句中定义多个变量(即使它们是同一类型)。相反,应该在单独的语句中定义每个变量(然后使用单行注释来记录其用途)。


小结

在C++中,我们使用变量来访问内存。变量具有标识符,类型和值(以及此处不相关的其他一些属性)。变量的类型用于确定如何解释内存中的值。在下一课中,我们将研究如何为变量赋值以及如何实际使用它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值