Nie rozumiem do końca procesu działania tej funkcji
Funkcja ta, sprawdza czy napis czytany od przodu, jest taki sam jak czytany od tył. "Iterujesz" przez tekst od początku do końca, i odwrotnie. Kończysz gdy "wskaźniki" i,j się miną. Za każdym razem sprawdzasz, czy odpowiadające sobie po dwóch stronach wartości się różnią:
if(napis[i]!=napis[j])
Jeśli tak, to znaczy że tekst nie jest palindromem. Kończysz pętle, i ustawiasz zmienną X na false. Gdy pętla skończy się "naturalnie", to wartość true pozostanie.
Szczególnie w ostatniej linijce
Operator ?: to skrócony zapis instrukcji warunkowej, zapis:
result = condition ? value1 : value2;
jest równoważny z:
if (condition)
result = value1;
else
result = value2;
U Ciebie, jeśli X to true, zwracasz true (liczba jest palindromem), w przeciwnym razie zwracasz false.