【C++】基础知识--常量(3)

常量是具有固定值的表达式。

1.文字

文字是最明显的常量类型。它们用于在程序的源代码中表示特定值。在前面的章节中,我们已经使用了一些来为变量提供特定的值,或者表达我们希望程序打印出来的消息,例如,当我们编写:

a = 5;

这段代码中是一个文字常量

文本常量可分为:整数、浮点、字符、字符串、布尔值、指针和用户定义的文本。

整数数字:

1776
707
-

这些是标识整数值的数字常量。请注意,它们未括在引号或任何其他特殊字符中;它们是一连串简单的数字,代表十进制基数的整数;例如, 始终表示值 8

除了十进制数(我们大多数人每天使用的十进制数)之外,C++还允许使用八进制数(以 16 为基数)和十六进制数(以 <> 为基数)作为文字常量。对于八进制文字,数字前面有一个(零)字符。对于十六进制,它们前面有字符(零、x)。例如,以下文本常量彼此等效:

75         // decimal
0113       // octal
0x4b       // hexadecimal

所有这些都表示相同的数字:75(七十五)分别表示为基数 10 的数字、八进制数字和十六进制数字。

这些文字常量有一个类型,就像变量一样。默认情况下,整数文本的类型为 。但是,可以将某些后缀追加到整数文本以指定不同的整数类型:

后缀类型修饰符
u  Uunsigned
l  Llong
ll  LL

long long

浮点数字:

它们用小数和/或指数表示实际值。它们可以包括小数点、字符(表示“在第 X 个高度处由十”,其中 X 是字符后面的整数值),也可以同时包含小数点和字符:

3.14159    // 3.14159
6.02e23    // 6.02 x 10^23
1.6e-19    // 1.6 x 10^-19
3.0        // 3.0  

这是四个有效数字,小数以C++表示。第一个数字是PI,第二个是阿伏伽德罗的数字,第三个是电子的电荷(一个极小的数字)——它们都是近似的——最后一个是表示为浮点数字文字的数字

浮点文本的默认类型为 。浮点文本的类型,可以通过添加以下后缀之一来指定:

后缀类型
f  Ffloat
l  L

long double

例如:
 

3.14159L   // long double
6.02e23f   // float 

字符和字符串文本:

'z'
'p'
"Hello world"
"How do you do?"

前两个表达式表示单字符文本,后两个表达式表示由多个字符组成的字符串文本。请注意,为了表示单个字符,我们将其括在单引号 () 之间,为了表示字符串(通常由多个字符组成),我们将字符括在双引号 () 之间。

单字符转义码的列表:

转义码描述
\n换行符
\r回车
\t标签
\v垂直选项卡
\b退格
\f表单提要(页面提要)
\a警报(蜂鸣音)
\'单引号 (')
\"双引号 (")
\?问号 (?)
\\反斜杠 (\)

2.类型化常量表达式

const double pi = 3.1415926;
const char tab = '\t';

例:

#include <iostream>
using namespace std;

const double pi = 3.14159;
const char newline = '\n';

int main ()
{
  double r=5.0;               // radius
  double circle;

  circle = 2 * pi * r;
  cout << circle;
  cout << newline;
}

3.预处理器定义 

命名常量值的另一种机制是使用预处理器定义。它们具有以下形式:

例:

#include <iostream>
using namespace std;

#define PI 3.14159
#define NEWLINE '\n'

int main ()
{
  double r=5.0;               // radius
  double circle;

  circle = 2 * PI * r;
  cout << circle;
  cout << NEWLINE;

}

请注意,这些行是预处理器指令,因此是单行指令,与C++语句不同,不需要分号 (;)最后;该指令会自动延伸至行尾。如果分号包含在行中,则它是替换序列的一部分,并且也包含在所有替换匹配项中。

@Neng

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==PP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值