Referencing arrays - do I need to use pointers?

// first declare currentscheme as a pointer to an integer

int * currentscheme;

// then you can set values of currentscheme like this
// remembering that the name of an array used without brackets is a pointer to the first element of the array

currentscheme = (int *)scheme1;

//and do this
if (currentscheme == (int *) scheme1)
currentscheme = (int *)scheme2;

// and this kind of thing (assuming x is declared as an int)

x = currentscheme[3];

// just watch out that you don't overflow the array bounds
// personally I wouldn't bother declaring the arrays as const int (just int)
// then you don't need all the casting.

etc etc