- 标识符
- 常量
- 整型常量
- 带后缀的整形常量
- 实型常量(浮点数)
- 带后缀的实型常量
- 转义字符
- 字符串
- bool型常量
- 符号常量
- 变量
标识符
标识符(Identifier) 是为变量、函数、类、结构体、枚举、命名空间等实体定义的名称。
标识符的命名规则
C++ 对标识符的命名有严格的规则,以下是标识符命名的基本规则:
- 组成字符:
- 标识符可以由以下字符组成:
- 字母(
a-z
、A-Z
) - 数字(
0-9
) - 下划线(
_
)
- 字母(
- 标识符的第一个字符必须是字母或下划线,不能是数字。
- 标识符可以由以下字符组成:
- 区分大小写:
- C++ 是区分大小写的语言,因此
myVar
和myvar
是两个不同的标识符。
- C++ 是区分大小写的语言,因此
- 关键字不能用作标识符:
- C++ 的关键字(如
int
、class
、return
等)是语言保留的,不能用作标识符。
- C++ 的关键字(如
- 长度限制:
- C++ 标准没有明确规定标识符的最大长度,但大多数编译器支持至少 31 个字符(C++98 标准)或更多(C++11 及更高版本)。
- 避免双下划线:
- 以双下划线(
__
)或单下划线后跟大写字母(_A
)开头的标识符是保留给编译器和标准库使用的,应避免使用。
- 以双下划线(
- 可读性和命名规范:
- 虽然 C++ 对标识符的命名没有严格的风格要求,但为了提高代码的可读性,通常遵循一些命名规范,例如:
- 变量名和函数名使用小写字母,单词之间用下划线分隔(
my_variable
)。 - 类名和结构体名使用大写字母开头的驼峰命名法(
MyClass
)。 - 常量名使用全大写字母,单词之间用下划线分隔(
MAX_SIZE
)。
- 变量名和函数名使用小写字母,单词之间用下划线分隔(
- 虽然 C++ 对标识符的命名没有严格的风格要求,但为了提高代码的可读性,通常遵循一些命名规范,例如:
标识符的作用域
标识符的作用域决定了它在程序中的可见性和生命周期。C++ 中有以下几种作用域:
- 局部作用域(Local Scope):
- 在函数或代码块(如
{}
内)中定义的标识符具有局部作用域,只能在定义它的函数或代码块内访问。
- 在函数或代码块(如
- 全局作用域(Global Scope):
- 在所有函数和代码块之外定义的标识符具有全局作用域,可以在整个程序中使用。
- 类作用域(Class Scope):
- 在类或结构体中定义的成员变量和成员函数具有类作用域,只能通过类的对象或类名访问。
- 命名空间作用域(Namespace Scope):
- 在命名空间中定义的标识符具有命名空间作用域,需要通过命名空间名称访问。
标识符的命名规范
为了提高代码的可读性和可维护性,通常遵循以下命名规范:
- 变量和函数:
- 使用小写字母,单词之间用下划线分隔。
- 例如:
int my_variable;
、void my_function();
- 类和结构体:
- 使用大写字母开头的驼峰命名法。
- 例如:
class MyClass;
、struct MyStruct;
- 常量:
- 使用全大写字母,单词之间用下划线分隔。
- 例如:
const int MAX_SIZE = 100;
- 枚举:
- 枚举类型名使用大写字母开头的驼峰命名法,枚举值使用全大写字母。
- 例如:
enum Color { RED, GREEN, BLUE };
- 命名空间:
- 使用小写字母,单词之间用下划线分隔。
- 例如:
namespace my_namespace {}
示例:
#include <iostream>
#include <string>
// 全局作用域
const int MAX_SIZE = 100; // 常量
int global_var = 10; // 全局变量
// 命名空间作用域
namespace my_namespace {
int namespace_var = 20;
}
// 类作用域
class MyClass {
public:
int class_var; // 成员变量
void my_method() { // 成员函数
std::cout << "Class method called!" << std::endl;
}
};
// 函数
void my_function() {
int local_var = 30; // 局部变量
std::cout << "Local variable: " << local_var << std::endl;
}
int main() {
// 访问全局变量
std::cout << "Global variable: " << global_var << std::endl;
// 访问命名空间变量
std::cout << "Namespace variable: " << my_namespace::namespace_var << std::endl;
// 访问类成员
MyClass obj;
obj.class_var = 40;
std::cout << "Class variable: " << obj.class_var << std::endl;
obj.my_method();
// 调用函数
my_function();
return 0;
}
标准 C++ 关键字
常量
直接常量
整形常量包括:正整数,负整数,0;其中8进制数据以0开头;16进制数据以0x开头。
cout << 100 <<endl; //10进制
cout << 034 <<endl; //8进制
cout << -034 <<endl; //8进制
cout << 0x27 <<endl; //16进制 39
cout << -0x27 <<endl; //16进制 -39
带后缀的整型常量:
- 100U -> 代表无符号整型 unsigned
- 100L ->代表长整形long
- 100UL ->代表无符号长整形unsigned long
#include <iostream>
using namespace std;
int main()
{
cout << 100 << endl; //int
cout << 100U << endl; //unsigned
cout << 100L << endl; //long
cout << 100LL << endl; //long long
cout << sizeof(100) << endl; // 100占用的字节数
cout << sizeof(100U) << endl; // 100U占用的字节数
cout << sizeof(100L) << endl; // 100L占用的字节数
cout << sizeof(100UL) << endl; // 100UL占用的字节数
cout << sizeof(100LL) << endl; // 100LL占用的字节数
cout << sizeof(100ULL) << endl; // 100ULL占用的字节数
return 0;
}
执行结果:

实型常量
实型常量可以用 小数形式和指数形式表达。
cout<<2.18<<endl;
cout<< 2.18E+20 <<endl;
cout<< -2.18E-20 <<endl;
带后缀的实型常量:默认情况实型常量是double型浮点数;后缀f可以指定常量为float浮点数。
cout << 2.18 << endl; //double
cout << 2.18F << endl; //float
cout << 2.18L << endl; //long double
转义字符
在 C++ 中,转义字符(Escape Sequences) 是以反斜杠(\
)开头的特殊字符,用于表示无法直接输入的字符(如换行符、制表符等)或具有特殊含义的字符(如引号、反斜杠等)。转义字符通常用于字符串或字符常量中。
常用转义字符列表
转义字符 | 描述 |
---|---|
\n | 换行符(Newline),将光标移动到下一行的开头。 |
\t | 水平制表符(Tab),将光标移动到下一个制表位。 |
\\ | 反斜杠(Backslash),用于表示一个反斜杠字符。 |
\' | 单引号(Single Quote),用于表示一个单引号字符。 |
\" | 双引号(Double Quote),用于表示一个双引号字符。 |
\? | 问号(Question Mark),用于表示一个问号字符。 |
\a | 响铃符(Alert),发出系统提示音(通常是“嘟”声)。 |
\b | 退格符(Backspace),将光标向左移动一个字符。 |
\r | 回车符(Carriage Return),将光标移动到当前行的开头。 |
\f | 换页符(Form Feed),用于打印机换页,或在终端中清屏。 |
\v | 垂直制表符(Vertical Tab),将光标移动到下一个垂直制表位。 |
\0 | 空字符(Null Character),表示字符串的结束(常用于 C 风格字符串)。 |
\ooo | 八进制转义字符,ooo 是一个 1 到 3 位的八进制数。 |
\xhh | 十六进制转义字符,hh 是一个 1 到 2 位的十六进制数。 |
cout << '\101' << '\n'; //101为八进制
cout << '\x41' << '\n'; //41为十六进制
cout << '\t' << 't' << '\n';//在下一个制表位输出 t
cout << '\"' << '\n'; //输出双引号 "
cout << '\'' << '\n'; //输出单引号 '
cout << '\\' << '\n'; /*输出反斜线 \ */
cout << '\a'; //响铃
cout << "abcd" << '\b' << '\b' << '*' << '\n'; //演示退格
字符串常量
是由一对双引号“”括起来的若干字符,有些字符串需要借助转义字符才能正常输出。
Bool型常量
bool型常量只有两个:true (真) 和 false (假)。
#include <iostream>
using namespace std;
int main()
{
cout << true << " "; // 输出true
cout << false << endl; // 输出false
return 0;
}
运行输出:

可知C++中true用1表示,flase用0表示。
符号常量
C++中可以使用 宏定义 和 const 来定义符号常量:
#define PI 3.14
const float pi=31.4
变量
在程序运行时,值可以变化的量。在程序中定义的每个变量都要在内存中分配存储空间,变量名与其分配的内存空间相关联,因此可以通过变量名得到这个内存空间中的值,也可以对其进行修改。
Comments 2 条评论
看到了好久以前学的知识。
补充一句:转义字符这个东西严格说不是C++的特性,是C里就有的。转义字符存在的必要性主要在于解决特殊符号在string literial中的使用,除了换行回车(都是新开行)以外还用于输出一些特殊的内容,比如终端中的着色。
至于命名规则这类事情,推荐罗伯特·马丁的《代码整洁之道》,里面讲述了很多让代码变干净的方法,获益至今。
@Chise Hachiroku 原来可以给终端着色,涨见识了!另一本书也在ZLib下载到了
(⌒▽⌒)