The C compiler allows the conversion of pointer types to integral data types of the same size in global initializations. Since this type of conversion does not conform to the ANSI C standard, it is only available if the ANSI Strict setting is disabled.
char c;
long arr = (long)&c; // accepted (not ISO C)
See Checking for Standard C and Standard C++ Conformity for more information on this setting.