Think of arrays as pointers to the start of a stream of data. When comparing them, you are comparing the memory address of the first value of the array with the second. These will never be the same, unless one array references another. Basically it's a redundant test that shouldn't be done. To compare arrays, you would need to overload the == operator like so...
bool operator==(array array1, array array2)
if (array1.iSize != array2.iSize)
return false; //if the sizes are different, bail
for(int i(0); i < array1.iSize; ++i)
if (array1[i] != array2[i])
Where array1 and array2 are user defined data types containing a size member and overloaded  operator.