首页 > 编程笔记 > C++笔记 阅读:18

C++中的常量(非常详细)

程序运行过程中,其值不能改变的量称为常量。常量包括整型常量、浮点型常量、字符常量、字符串常量等。

例如,下面通过 cout 向屏幕输出 4 行内容。cout 是输出流,可向屏幕输出不同类型的数据。2009 是整数(即整型常量),2.14 是小数(即浮点型常量),'a' 是字符常量,"Hello World" 是字符串常量。
#include <iostream>
using namespace std;
int main()
{
    cout << 2009 << endl;       // 输出整数 2009
    cout << 2.14 << endl;    // 输出小数 2.14
    cout << 'a' << endl;      // 输出字符 a
    cout << "Hello World"<< endl; // 输出字符串 Hello World
}

C++整型常量

整型常量就是整型常数(没有小数部分),如 123、−456、0 等。

编写代码时,可将整型常量表示为十进制、八进制和十六进制 3 种表示形式。
例如,0396 不是合法的八进制整数,因为 9 不是八进制应有的取值;0X3N 不是合法的十六进制整数,因为 N 不是十六进制应有的取值。

整型常量不可以无限大,它的最大值是有限定的。根据 CPU 寄存器位数以及编译器的不同,最大的整型常量值也会不同。

注意,“合法”主要指能通过编译器编译,“非法”或“不合法”指不能通过编译器编译。

C++浮点型常量

浮点型(又称为实型)常量就是我们常见的小数,只能采用十进制形式表示。

浮点型的表示方法有两种,即小数表示法和指数表示法。

1) 小数表示法

小数表示法由整数部分和小数部分组成,中间用小数点分隔。例如,0.0、2.25、0.00596、5.0、536.、-5.3、-0.002 均为合法的实型常量。

另外,整数部分和小数部分可以省略一处,例如,.2表示小数0.2,2.表示小数2.0。

2) 指数表示法

指数表示法又称为科学记数法,指数部分以“e”或“E”开始,后跟整数。

例如,1.2e20 和 -2.4e-2 是合法的实型常量,其中 1.2e20 表示 1.2×10^20,-2.4e-2 表示 -2.4×10^-2。而 E5、3E2.5 不是合法的实型常量,因为 E5 中 E 之前无数字,3E2.5 中 E 后面有小数。

C++字符常量

使用一对单直撇引号(' ')括起来的字符就是字符常量,如 'a'、'A'、'?'、'#'、'b' 等。

编译代码时,编译器会根据 ASCII 码表将字符常量转换成整型常量。其中,'a' 对应的 ASCII 码值是 97,'A' 对应的 ASCII 码值是 65,'?' 对应的 ASCII 码值是 63。' '表示空字符(NULL),有的编译器把它编译成 0,有的则编译成其他值。

除了这些固定字符,ASCII 码表中还有很多无法通过键盘输入的字符。例如,输出结果中却不显示“\n”符号,只是进行了换行操作,这种符号称为转义字符。

表:常用的转义字符
转义字符 意义 ASCII 代码 转义字符 意义 ASCII 代码
\0 空字符 0 \\ 反斜杠 93
\n 换行 10 ' 单引号字符 39
\t 水平制表 9 " 双引号字符 34
b 退格 8 a 响铃 7
r 回车 13 f 换页 12
ddd 1~3 位八进制数代表的字符   xhh 1~2 位十六进制数代表的字符  

下面来看一个转义字符的应用示例,代码如下:
#include <iostream>
int main()
{
    std::cout << "A" << std::endl;
    std::cout << "\101" << std::endl;    // 使用\ddd 表示的转义字符
    std::cout << "\x41" << std::endl;    // 使用\xhh 表示的转义字符
    std::cout << "\052" << std::endl;
}
代码运行结果为:

A
A
A
*

C++字符串常量

字符串常量是用一对双直撇引号(" ")括起来的字符序列。

例如,"hello"、"welcome to China" 都是合法的字符串常量。其中," " 表示一个空字符串,此时字符串的长度为 0。

字符串常量实际上是一个字符数组,可以将字符串分解成若干个字符,字符的数量是字符串的长度。字符串常量一般用来给字符数组变量赋值或是直接作为实参传递,为告知编译器字符串已经结束,一般在给字符数组赋初值时在字符串的末尾加上字符 '\0',表示字符结束,如果不加字符结束标志,可能会出现意想不到的错误。

注意,字符 'A' 与字符串 "A" 含义不同。内存中,字符 'A' 则只包含一个字符;字符串 "A" 由 'A' 和 '\0' 两个字符组成,字符串的长度是 2。

C++其他常量

除了整型、浮点型、字符型、字符串型常量外,还存在布尔常量、枚举常量和宏定义常量等。

布尔类型(bool)是表示是否、对错等真假判断的数据类型,常用在逻辑判断中。布尔类型只有 true 和 false 两个取值。true 表示真,其值为 1;false 表示假,其值为 0。

枚举型数据中定义的数据也都是常量。

通过 #define 宏定义的值也是常量。例如:
#define PI 3.1415
其中 PI 就是常量,代表的是 3.1415。编译时遇到 PI,就会被自动替换为 3.1415。

相关文章