c++语言常量,C++常量(constant)

在程序执行过程中,其值不能改变的量称为常量(Constant)。普通常量的类型是根据数据的书写形式来决定的。如 100 是整型常量,0.5 是实型常量,'q' 是字符型常量,"qianfeng" 是字符串常量。

1. 整型常量

在 C++ 中,使用的整型常量可以用八进制、十进制和十六进制 3 种方式表示,具体如下所示:

十进制整型常量是最常用的一种表示形式,如 321、-123。

八进制整型常量以 0 开头作为前缀,其数码取值为 0~7,如 025、-066。

十六进制整型常量以 0x 或 0X 开头作为前缀,其数码取值为 0~9、A~F 或 a~f,如 0xffff、-0X15。

整型常量在表示时,除了用前缀表示进制外,有时还需要用到后缀表示 long、unsigned 修饰符。当表示长整型常数时,需要在该数的后面加上 L 或 l,如 2345L;当表示无符号整型常数时,需要在该数的后面加上 U 或 u,如 4567U。

2. 实型常量

实型常量又称浮点型常量,它由整数部分和小数部分组成,其表示形式有以下两种形式:

小数表示形式,它由数字和小数点组成,不可省略小数点,但可以省略整数部分或小数部分数字,如 1.、.21。

指数表示形式,它由小数表示法后加 e(或 E )和指数组成,指数部分可正可负,但必须是整数,并且 e 前边必须有数字,如 1.23e-5、.23e6。

实型常量分单精度、双精度和长双精度 3 类,它们用后缀加以区分,不加后缀的为双精度浮点型常量,如 2.12;加后缀 F 或 f 的为单精度浮点型常量,如 2.12f;加后缀 L 或 l 的为长双精度浮点型常量,如 0.56e7L。

3. 字符型常量

用一对单引号括起来表示的形式就是字符型常量。在内存中,字符数据以 ASCII 码的形式存储,在一定范围内可以与整数相互赋值,但含义有所不同。ASCII 码是一种给字符编码的国际标准,它以整数表示字符,比如十进制数 65,表示字符 'A'。此处注意数字与字符的区别,如 4 与 '4' 是不同的,4 是整数,'4' 是字符,对应的 ASCII 码值为 52。

在 C++ 中,有些特殊字符用转义字符表示,转义字符以反斜杠“\”开头,后跟若干个字符。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符,表 1 列出了常用的特殊字符。

表 1:常用的转义字符及含义

转义字符

含义

ASCII

\0

空字符

0

\n

回车换行

10

\t

横向跳到下一制表位置

9

\b

退格

8

\r

回车

13

\f

换页

12

\\

反斜杠符

92

\'

单引号符

39

\”

双引号符

34

\a

鸣铃

7

\ddd

1〜3 位八进制数所代表的字符

\xhh

1〜2 位十六进制数所代表的字符

在表 1 中,'\ddd' 和 '\xhh' 都是用 ASCII 码表示一个字符,如 '\101' 和 '\x41' 都是表示字符 'A'。转义字符在输出中有许多应用,如想让计算机的喇叭发出响声,可以使用下面的语句。

cout << '\a';

如果需要在屏幕上输出以下内容:

小 C 对小 A 说:"学 C、C++ 语言,C语言中文网是最佳之选"。

不能使用以下方法:

cout <

因为双引号在C++中是有特殊作用的,上述写法会使编译器产生错误,正确的语句如下所示:

cout <

4. 字符串常量

字符串常量是由一对双引号括起来的字符序列。被括起来的字符序列可以是一个字符,也可以是多个字符,还可以没有字符。如"q"、"qian"、""。字符串常量都有一个结束符,用来标识字符串的结束,该结束符是 '\0',即 ASCII 码值为 0 的空字符。

对于初学者,经常混淆字符与字符串的概念,它们是不同的量,两者区别如下:

字符用单引号括起来,字符串用双引号括起来;

字符与字符串占用的内存空间不同,字符只占用一个字节的空间,而字符串占用的内存字节数等于双引号中的字符个数加1,如字符 'q' 和字符串"q"在内存中的情况是不同的,字符 'q' 在内存中占一个字节,而字符串"q"在内存中占两个字节,如图 1 所示。

bb6991f047ece21d4aa74ddfc680f74d.png

图 1:字符'q'与字符串"q"在内存中的表示

5. 符号常量

有一种特殊的常量是用标识符来表示的,称为符号常量。符号常量主要用于帮助记忆和提高程序的可读性与维护性。例如,程序中经常会用到圆周率,假设为 3.14,如果程序想提高圆周率的精度到 3.141 592 65,那么它在程序中出现的所有地方都需要做修改,大大降低了程序的维护性。

这时如果用 PI 表示圆周率,每次使用时都写 PI,那么在需要修改PI的精度时,只需要修改 PI 的初值就可以了。在 C++ 中,为了保持与 C 语言的兼容,允许程序用编译预处理指令 #define 来定义一个符号常量,上面的圆周率可以通过如下定义:

#define PI 3.14159265

这条指令的格式是 #define 后跟一个标识符和一串字符,中间用空格隔开。由于它不是 C++ 语句,因此此行没有分号。在程序编译时,编译器首先将程序中的 PI 用 3.14159265 来替换,然后再进行代码编译。标识符后面的内容实际上是一个字符串,编译器本身不会对其进行任何语法检查,仅仅是在程序中将标识符简单替换为字符串,因此,有时会带来意想不到的错误。

6. const常量

在定义变量时,可以使用 const 关键字来修饰,这样的变量是只读的,即在程序中不能对其修改,只能读取。由于不可修改,因而它是一个符号常量,且在定义时必须进行初始化。需要说明的是,通常将符号常量中的标识符写成大写字母易于与其他标识符区分。用 const 关键字定义符号常量的格式如下:

const 数据类型 常量名=初值表达式;

上面的圆周率可以通过如下定义:

const double PI=3.14159265;

const 还可以放在数据类型名后,具体示例如下:

double const PI=3.14159265;

注意下面的语句是错误的:

const double PI; //PI的值无法确定

PI = 3.14159265; //常量值不能修改

接下来演示通过 const 关键字定义符号常量,如例 1 所示。

【例 1】

#include

using namespace std;

const double PI = 3.14159265; //定义符号常量 PI

int main()

{

double area, r = 10.0;

area = PI * r * r; //使用符号常量 PI

cout<< " area = " << area << endl;

return 0;

}

程序执行结果为:

area = 314.159

在例 1 中,第 3 行通过 const 关键字定义一个符号常量 PI 表示圆周率。第 7 行中使用圆周率就可以用 PI 来代替。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值