C++编程入门指南(全2册)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 变量

变量是指在程序运行过程中其值是可以进行变化的量。每一个变量都是一种类型,每一种类型都定义了变量的格式和行为。数据各式各样,要先根据数据的需求(类型)为它申请一块合适的空间。如果把内存比喻成一个能容纳房客的宾馆,那么房间号就相当于变量名,房间类型就相当于变量的类型,入住的客人就相当于变量值,示意图如图2.14所示。

图2.14 入住宾馆示意图

C++语言中的变量类型有整型变量、浮点型变量(实型变量)和字符型变量,下面分别进行介绍。

2.3.1 标识符

标识符(identifier)可以简单地理解为一个名字,它是用来对C++程序中的常量、变量、语句标号及用户自定义函数的名称进行标识的符号。

● 标识符命名规则如下。

➢ 由字母、数字及下划线组成,且不能以数字开头。

➢ 大写和小写字母代表不同意义。

➢ 不能与关键字同名。

➢ 尽量“见名知义”,应该受一定规范的约束。

● 不合法的标识符如下。

➢ 6A(不能以数字开头)。

➢ ABC*(不能使用*)。

➢ case(是保留关键字)。

在C++语言中有许多保留关键字,如表2.4所示。

表2.4 C++语言中的保留关键字

常见错误:标识符大小写书写错误,在书写标识符时要注意区分字母的大小写;标点符号中英文状态忘记切换,在书写代码时应该采用英文半角输入法输入。

2.3.2 变量的声明与赋值

每个变量都有一个变量名标识符,每个变量同时又具有一个特定的数据类型。

1.变量的声明

在使用变量之前一定要定义或声明,变量声明的语法格式如下:

类型是变量类型的说明符,说明变量的数据类型。修饰符是任选的,可以没有修饰符。

多个同一类型的变量可以在一行中声明,不同变量名之间使用逗号进行隔开,例如:

两者是等价的。

2.变量的赋值

变量值是可以动态改变的,每次改变都需要进行赋值运算。变量的赋值语法格式如下:

变量名标识符就是在声明变量时定义的,例如:

声明i、j是一个整型变量,100是一个常量,为i赋初值100,最后将i的值赋给j,例如:

3.变量赋初值

用户可以在声明变量时把数值赋给变量,这个过程称为变量赋初值,赋初值的情况有以下几种。

(1)int x=5;

表示定义x为有符号的基本整型变量,x被赋初值为5。

(2)int x,y,z=6;

表示定义x、y、z为有符号的基本整型变量,z被赋初值为6。

(3)int x=3,y=3,z=3;

表示定义x、y、z为有符号的基本整型变量,x、y、z分别被赋初值为3。

注意:在定义变量并赋初值时可以写成“int x=3,y=3,z=3;”,但不可以写成“int a=b=c=3;”的形式。

2.3.3 整型变量

整型变量可以分为整型、短整型和长整型,其变量类型说明符分别是int、short、long。根据是否有符号,整型变量还可分为以下6种。

方括号中的关键字可以省略,如[signed] int可以写成int。

短整型在内存中占用2字节的空间,有符号短整型表示数的范围是-32768~32767,无符号短整型表示数的范围是0~65535。整型占用4字节的空间,有符号整型表示数的范围是-2147483648~2147483647,无符号整型表示数的范围是0~4294967295。长整型与整型占用的字节数相同,表示数的范围也相同。整型变量范围如表2.5所示。

表2.5 整型变量范围

注意:通常说的整型是指有符号基本整型int。

在默认情况下整数类型是int,如果在为long类型赋值时,没有添加L或l标识,则会按照如下方式进行赋值:

正确的写法为:

2.3.4 实型变量

实型变量也称为浮点型变量,是指用来存储实型数值的变量,其中实型数值是由整数和小数两部分组成的。在C++语言中,实型变量根据实型的精度可以分为单精度类型、双精度类型和长双精度类型,如表2.6所示。

表2.6 实型变量的分类

1.单精度类型

单精度类型使用的关键字float,它在内存中占4字节,取值范围是-3.4×10-38~3.4×1038。定义一个单精度类型变量的方法是在变量前使用关键字 float。如要定义一个单精度类型变量fFloatStyle,并为其赋值为3.14的方法如下:

注意:在为单精度类型变量赋值时,需要在数值后面添加 f,表示该数字的类型是单精度类型,否则默认为双精度类型。

2.双精度类型

双精度类型使用的关键字是double,它在内存中占8字节,取值范围是-1.7×10-308~1.7×10308

定义一个双精度类型变量的方法是在变量前使用关键字 double。如要定义一个双精度类型变量dDoubleStyle,并为其赋值为5.321的方法如下:

2.3.5 字符型变量

字符型变量是指用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

字符型变量在内存空间中占1字节,取值范围是-128~127。定义一个字符型变量的方法是在变量前使用关键字char。如要定义一个字符型变量cChar,并为其赋值为'a'的方法如下:

注意:字符数据在内存中存储的是字符的ASCII码值,即一个无符号整数,其形式与整数的存储形式一样,因此,在C++语言中,允许字符型数据与整型数据之间进行通用,例如:

从上面的代码中可以看到,定义两个字符型变量,在为两个字符型变量进行赋值时,一个字符型变量赋值为a,而另一个字符型变量赋值为97,显示结果都是a。

(1)一个字符型数据,既可以用字符形式输出,也可以用整数形式输出。

字符型数据与整型数据之间的运算,代码如下:

程序运行结果如图2.15所示。

图2.15 字符型数据与整型数据之间的运算

(2)允许对字符型数据进行算术运算,也就是对它们的ASCII码值进行算术运算。

对字符型数据进行算术运算,代码如下:

程序运行结果如图2.16所示。

图2.16 对字符型数据进行算术运算