char *goodCode = "0F030429F0";
allocates some memory, stores some data in that memory location, and puts the address of that memory location in the variable goodCode. One would say that goodCode points to the string, hence the term pointer.
That memory consists of consecutive bytes. The first byte is offset 0 from the start of the memory location stored in goodCode, so it can be obtained using goodCode. Other characters are at other offsets. The value in the  is the offset from the beginning of the array.
Pointers and arrays are very closely linked, and can generally substitute for each other.