什么是常量,C++常量及用法(无师自通)

常量是直接书写在程序代码中的数据片段。常量最常见的用法之一就是给变量赋值。

例如,下面语句表示将常量值 5 分配给变量 number:

number = 5;

常量的另外一种常见用法是在屏幕上显示某些内容。例如,字符串常量被发送到 cout 以显示单词:

cout << "The value of number is";

常量可以是字符、字符串或数字值。下面的程序就使用了一个变量和若干常量:
// This program uses integer literals, string literals, and a variable .
#include <iostream>
using namespace std;

int main()
{
    int apples;
    apples = 20;
    cout << "On Sunday we sold " << apples << " bushels of apples. \n";
    apples = 15;
    cout << "On Monday we sold " << apples << " bushels of apples. \n";
    return 0;
}
程序输出结果

On Sunday we sold 20 bushels of apples.
On Monday we sold 15 bushels of apples.

该程序中的变量是 apples。此外,表 1 列出了上面程序中使用的常量。

整数常数 字符串常数
20 "On Sunday we sold"
15 "On Monday we sold"
0 "bushels of apples.\n"

有时数字并不是数字

如上面程序所示,在一个或多个单词周围放置引号将使其成为字符串常数值。当字符串文字被发送到 cout 时,它们的打印将完全依照出现在引号中的内容。

你可能己经注意到,endl 流操作器在书写时其周围就没有引号。如果将下面的代码行放在一个程序中,那么它将打印出一个单词 endl,而不是让后续的输出开始新的一行。

cout << "endl"; //错误!

事实上,将双引号放在任何不打算作为字符串使用的东西上都会产生某种类型的错误。

例如,在上面程序的第 8 行中,本意是要将整数常数 20 分配给变量 apples,使其获得值 20,但如果以下面这种方式编写该语句则是不正确的:

number = "20"; //错误!

由于有双引号包围,所以这里的 20 不再是一个整数,它变成了一个字符串。而因为 apples 被定义为整数型变量,所以只能在其中存储整数。整数 20 和字符串“20”显然不是一回事。

数字可以表示为字符串,这种情况经常让新学习编程的人搞不清。请记住,字符串是供人阅读的,它们将被打印在计算机屏幕或纸张上。但是,数字则主要用于数学运算。

不能对字符串执行数学运算,也不能在屏幕上显示数字。数字需要先转换为字符串才能在屏幕上显示。幸运的是,在给cout发送数字时,它会自动处理此转换。