It is not a very high level language, nor a big one.
It was originally designed for and implemented on the UNIX operating system.
Very useful for writing operating system, compilers and system programs and hence it is also called a โsystems programming languageโ.
Many important ideas in C stem from BCPL and B. [BCPL -> B -> C]
BCPL and B are โtypelessโ languages, they donโt have data types defined.
On the other hand, C provides a variety of data types, as well as a hierarchy of derived data types like structure and union.
Expressions are statements in C.
Pointers provide machine-independent address arithmetic.
Control flow constructions - for, while, if-else, etc.
Functions in C might be in separate source files that can be compiled separately.
Concept of Local(Automatic) and Global variables.
Preprocessing to include libraries and to perform macro expansion.
Some Features of C
C provides no input/output facilities(READ or WRITE).
C provides no operation to deal directly with composite objects such as strings and arrays.
No storage allocation other than static definition and stack discipline provided by local variables of functions.
There is no heap and garbage collection.
C offers only straightforward, single-thread control flow: tests, loops, etc., but no parallel operation, multiprogramming, sync, or coroutines.
C Programming language was standardized by ANSI (American National Standards Institute) in 1988.
ANSI C also included definition of a library to accompany C. It specifies functions for accessing the operating system (Read/Write),
formatted input and output, memory allocation, string manipulation, etc. This library is closely modeled on the โstandard I/O libraryโ of the UNIX system.