Nu, nu e corect.
Asta se mai intampla si cand faci suma a doua numere , fiecare int, suma care depaseste int.
Trebuie sa scrii:
int a, b;
long long s;
s = 0LL + a + b
sau
Ideea e ca compilatorul executa operatiile pe int, nu conteaza tipul variabilei.