The paper presents a simple representation of C expressions and an algorithm that translates C expressions into this form. The representation can be used as a simple model when designing program analyses. At the same time, it can be used as a compiler intermediate representation to build actual analysis implementations. We describe a formulation of a flow-insensitive, but field-sensitive points-to analysis using this representation. We have implemented this intermediate representation and points-to analysis in CRYSTAL, our program analysis infrastructure. We find core expression very useful in providing a convenient model for program analysis and a simple intermediate compiler representation for C expressions.