a is a char pointer. strrev(a) probably returns a char pointer. strrev is NON-STANDARD so it could be doing anything at all.
Comparing the memory address of the start of two char arrays (which could be the same array, depending on what the non-standard function strrev does) is not the same as comparing the letters in the arrays.