If you know what BNF is:
Identifier -> Start Cont
Start -> letter | underline
Cont -> empty | (letter | underline | digit) Cont
1. identifiers beginning with a letter 2. identifiers beginning with an underscore
all keywords
Yes they is different, C language are case-sensitive.
C, o, u, e
C, o, u, e
Identifiers are a bit more generic in the context of programming. If you mean, in terms of the C languages (C, C++, C#), the question is the reverse...keywords may NOT be used as identifiers. For example, you cannot use keywords such as "int", "float", "double", etc. as the names of variables or objects.
If you mean 'are identifier of an object and nameof an object synonyms?', then yes, they are.
An identifier is a name. All names must be declared with a type.
In order to claim compliance with ANSI C standards, the minimum maximum for internal identifiers and macros is 63 characters, and external identifiers is 31 characters. Vendors are encouraged to avoid imposing a maximum value whenever possible.
Not o,e,r,u
No. Keywords are reserved and cannot be used as identifiers. However, C/C++ is case-sensitive. So although register is a reserved keyword, Register is not.
There is no string class in C because C is not an object-oriented language. Assuming you actually meant C++, all built-in identifiers and data types are declared in all lowercase, including std::string, while all macros are declared in uppercase. This is by convention. User-defined identifiers and data types can use mixed case, but it's best to stick to the convention as much as possible. You will often encounter mixed-case or camel-case (LikeThis) which is fine if you're a Pascal coder but it is not a C++ convention -- it's just laziness. Lowercase is less distracting and is much easier to read when multiple word identifiers are separated with underscores.