When a reference is declared final, it means you cannot change the value in the reference i.e. it cannot point to some other object. Whereas the value in that object can still be changed using this reference.
In the method, the local reference c is final. This means you cannot assign any other int reference, say d, to c. Option C changes the value in the array object (this object is not final, only its reference is). This is allowed.