 There are also derived types including arrays, pointers, records (codice_11), and unions (codice_34).C is often used in low-level systems programming where escapes from the type system may be necessary.The compiler attempts to ensure type correctness of most expressions, but the programmer can override the checks in various ways, either by using a "type cast" to explicitly convert a value from one type to another, or by using pointers or unions to reinterpret the underlying bits of a data object in some other way.