Identifiers in C++

A valid identifier may be a sequence of 1 or a lot of letters, digits or underscore characters (_). Neither spaces nor punctuation marks or symbols may be a part of associate identifier. solely letters, digits and single underscore characters are valid. additionally, variable identifiers forever need to begin with a letter. they will additionally begin with associate underline character (_ ), however in some cases these is also reserved for compiler specific keywords or external identifiers, as well as identifiers containing 2 successive underscore characters anyplace. In no case they will begin with a digit.
Another rule that you just need to take into account once inventing your own identifiers is that they can’t match any keyword of the C++ language nor your compiler’s specific ones, that are  reserved keywords. The standard reserved keywords are:

asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while

Additionally, various representations for a few operators can not be used as identifiers since they’re reserved words beneathsome circumstances:

and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

pdf articles here