Non ho capito appieno la differenza fra i++ e ++i

++i il valore è calcolato prima che l'espressione sia calcolata e viceversa

ma ..

nt power(int y,int x)
{
int j=1, p=(x?y:1);//se l'esponente è zero assegno il valore 1
while (j++<x)
p*=y; //p=p*base
return p;
}

while(j++ < x)

in questo caso quando entra ... j++ vale 2 ?

e poi un altra cosa

p = (x?y:1) cosa significa ?? cioè lo so che è un operatore ternario , l'if , ma non riesco a capire come funziona in questo caso ..

thanks !