expression evaluation in c