How the program is executed when there are functions?
printf("%d + %d = %d\n", a, b, res);
a, b, res have no defined values just after declaration.
res is set to 3 after the function call returns.
Copies are made to new memory locations for the parameter i and j in sum() function.
Value 3 is sent back as the value of the expression sum(a,b) in calling function.