c operator precedence explanation