Pointer Expressions (C++)
Any expression with an array type can be converted to a pointer of the same type. The result of the conversion is a pointer to the first array element. The following example demonstrates such a conversion:
char szPath[_MAX_PATH]; // Array of type char. char *pszPath = szPath; // Equals &szPath.
An expression that results in a function returning a particular type is converted to a pointer to a function returning that type, except when:
The expression is used as an operand to the address-of operator (&).
The expression is used as an operand to the function-call operator.