一个有效的标识符是一个序列的一个或多个字母,数字,或下划线字符(_)。空格,标点符号,和符号不能作为标识符的一部分。此外,必须以字母开头的标识符。他们也开始用下划线字符(_),但这样的标识符,在大多数情况下是保留给编译器特定的关键词或外部标识符,以及含有两个连续的下划线字符的任何标识符。绝不能以数字开头。
C + +中使用了大量的关键词识别操作和数据描述;因此,由程序员不能创建的标识符匹配这些关键词。标准的保留字,不能用于程序员创建标识符:
alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch, char, char16_t, char32_t, class, compl, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq
特定的编译器也可能有额外的特定的保留关键字。
非常重要:C++语言是一种“区分大小写”语言。这意味着,一个标识符大写字母不等于另一个具有相同名称但小写。因此,例如,结果变量不为结果变量和结果变量一样。这是三个不同的标识符识别三个不同的变量。