---
slug: literal
lesson: 6
chapter: 2
chapterTitle: 变量
title: 什么是字面量？C++ 里直接写出来的四种值
description: 字面量是直接写在代码里的值：整数、小数、字符、字符串共四种。本课用一个可在线运行的示例逐一输出它们，讲清字符与字符串的区别，为下一课变量做准备。
code: |
  #include <iostream>
  using namespace std;

  int main() {
      cout << 42 << endl;
      cout << 3.14 << endl;
      cout << 'A' << endl;
      cout << "Hello" << endl;
      return 0;
  }
faq:
  - q: 字面量是什么意思？
    a: 字面量是直接写在代码里的值，如 42、3.14、'A'、"Hello"。它不需要定义，写出来就能用，但没有名字，也不能被修改。
  - q: 字符和字符串有什么区别？
    a: 字符用单引号，只能装一个字符，如 'A'；字符串用双引号，可以装任意多个字符，如 "Hello"。写成 'AB' 是错误用法。
  - q: 字面量可以改变吗？
    a: 不可以。42 永远是 42。需要一个会变的值，就要用变量——这正是下一课的内容。
---

<div class="answer">
字面量是直接写在代码里的值，共四种：整数（42）、小数（3.14）、字符（'A'）、字符串（"Hello"）。
它写出来就能用，但没有名字，也不能修改——会变的值要用变量，那是下一课的内容。
</div>

## 四种字面量

程序处理的值，最简单的写法是直接写出来。这种直接写出来的值叫字面量：

| 种类 | 例子 | 写法要点 |
|---|---|---|
| 整数 | `42`、`-7`、`0` | 直接写数字 |
| 小数 | `3.14`、`-0.5` | 带小数点 |
| 字符 | `'A'`、`'5'` | 单引号，恰好一个字符 |
| 字符串 | `"Hello"`、`"你好"` | 双引号，长度不限 |

注意 `'5'` 是字符而不是整数 5——带引号的都是文本。两者的区别在第 10 课讲字符时展开。

## 示例讲解

```cpp
cout << 42 << endl;
cout << 3.14 << endl;
cout << 'A' << endl;
cout << "Hello" << endl;
```

四条 cout 语句各输出一种字面量。字面量不需要提前定义，写在 `<<` 右边即可参与输出。

## 可视化观察

在 CppStudio 中打开本课示例，点击播放：

1. 流程图依次高亮四个输出节点，每执行一条 cout，输出区立即出现对应的值：`42`、`3.14`、`A`、`Hello`；
2. 注意输出区里 `A` 不带单引号、`Hello` 不带双引号——引号是写给编译器看的标记，不是值的一部分；
3. 整个程序的变量监视区始终为空：字面量没有名字，监视区里没有它们的位置。

## 常见错误

- **字符写成双引号**：`"A"` 是字符串不是字符，赋值给字符变量会报错，单双引号不可混用；
- **一个单引号里写多个字符**：`'AB'` 是非法写法，编译报错；
- **使用中文标点**：`"Hello"` 误写成 `"Hello"`（中文引号）会直接编译失败，代码中的标点必须是英文半角。

下一课：认识变量——给值起名字，让它可以被反复使用和修改。
