Zakładam, że p jest intem. Wewnątrz ifa obliczany jest wynik p modulo i oraz przy okazji (ale bez znaczenia dla wyniku działania, bo to post-inkrementacja) inkrementowana jest wartość i. Wynik działania następnie jest negowany (wykrzyknik). Negacja ma sens tylko w przypadku typu bool, więc wynik działania jest konwertowany na bool i negowany. Konwersja na bool jakiegokolwiek innego typu podstawowego zachodzi na zasadach: 0 -> false, cokolwiek różnego od zera -> true. Zatem if wykonuje się jeśli p jest podzielne przez i (jeśli nie byłoby podzielne, to modulo da coś różnego od zera, czyli po konwersji na bool true, czyli po negacji false).