Constants and Identifiersexpression:
The most basic kinds of expressions are numeric and string constants. Numeric constants are of type "int", and string constants are of type "array of character". However, EEL changes any expression of type "array of ..." into a pointer to the beginning of the array (of type "pointer to ..."). Thus a string constant results in a pointer to its first character.
An identifier is a valid expression only if it has been previously declared as a variable or function. A variable of type "array of ..." is changed to a pointer to the beginning of the array, as described above.
Some expressions are called lvalue expressions.
Roughly, lvalue expressions are expressions that refer to a
changeable location in memory. For example, if
An identifier which refers to a variable is an lvalue if its type is an integer, a spot, a pointer, a structure, or a union, but not if its type is an array or function.
If an identifier has not been previously declared, and appears in a function call as the name of the function, it is implicitly declared to be a function returning an int.
If the name of a previously declared function appears in an expression in any context other than as the function of a function call, its value is a function pointer to the named function. Function pointers may not point to primitive functions.
For example, if
Once a color class