Char array at an int in C18
One C equivalent is to use a anonymous union, there are a few ways to use them so it's worth researching them further but an example is:

static union {
  word the_var;
  byte the_array[2];
};
the_var = 0x1234;
some_value = the_array[0];
some_other_value = the_array[1];


Another way to go about it is to use a pointer to the value:

word the_var = 0x1234;
byte *the_array = (byte *) &amp;the_var;
some_value = the_array[0];
some_other_value = the_array[1];