again, not really, take the statement / assignment "char *bank = _bank;" for instance.
technically this is &_bank[0] / &_bank, but the compiler knows what is meant.
so you end up with something like:
LDA #<__bank
LDX #>__bank
STA _bank
STX _bank+1
if in another file you have:
extern char *bank;
char *ptr;
ptr = bank;
then this wants to copy the value across and so will generate:
LDA _bank
LDX _bank+1
STA _ptr
STX _ptr+1
This was why I asked before if this worked in Array.c:
char *bank={...};
As that should result in a pointer assigned the address of the array.