C is typically called a low level or medium level language, indicating how closely it operates with the hardware. The definition of C as a middle - language means that it combines elements of high - level languages with the functionalism of assembly language.

As a middle - level language, C allows the manipulations of bits, bytes, and addresses - the basic elements with which the computer functions. C code is very portable. Portability means that it is possible to adapt software written for one type of computer to another. For example, if a program written for an Apple II+ Series can be moved easily to an IBM PC, that program is portable.

All high - level programming languages support the concept of data types. A data type defines a set of values that a variable can store with a set of operations that can be performed on that variable. Common data types are integer, character and real. Although C has five basic built-in data types, it is not a strongly typed language like Pascal, Ada, or Java, etc... However, C language can allow almost all type conversions.