Programski jezik C je viši programski jezik u kojem se stvaraju programi opće namjene. Razvio ga je Denis Ritchie sedamdesetih godina 19. stoljeća u Bell Telephone Laboratories, Inc. Tijekom sedamdesetih i osamdesetih godina brzo se širio te je American National Standard Institute (ANSI) počeo s njegovom standardizacijom koja je dovršena 1989. godine. Novi standard je uveo značajne promjene u programski jezik C pa se često naziva i ANSI-C. Danas gotovo svi moderni C-prevodioci imaju ANSI-C verziju jezika. ANSI standard je usvojila Medunarodna organizacija za standarde (International Organisation for Standardization (ISO C)) 1990. godine.
Kao programski jezik, C je prilično slican programskom jeziku Perl ili Javi. Vrijednosti s kojima se manipulira u programu su spremljene u varijablama. Programi su strukturirani tako da se sve odvija na definiranju i 'pozivanju' funkcija. Program se izvodi koristeći petlje (loops), naredabe if i funkcijske pozive. Ulaz i izlaz podataka može se odvijati na zaslon racunala ili direktno u datoteke. Slični tipovi podataka mogu biti pohranjeni u nizovima ili u strukturama podataka.
Od prethodno spomenutih programskih jezika, C omogućava precizne kontrole za ulaz/izlaz podataka. C je također sažetiji nego Java ili Perl. Ova se činjenica može iskoristiti u manjim programima, u kojima programer koristi snažne operatore u C-u. Programski jezik C također omogućava programeru da napravi programe koji se ističu svojom složenošću.
Osnovne karakteristike programskog jezika C:
1. VELIČINA – Programski jezik C karakterizira vrlo mali broj ključnih riječi (32). Ključne riječi su djelovi programskog koda.
2. BRZINA – Programi napisani u programskom jeziku C su brže izvode od programa koji su pisani u drugim programskim jezicima. Programski jezici su umjetni jezici koji nam omogućavaju manipuliranje računalom i izvršavanje zadaća pomoću računala (npr. C, VB, ASP.NET).
3. NAREDBE ZA KONTROLU TOKA - Programski jezik C raspolaže naredbama koje kontroliraju tok izvršavanja programa, a to su: petlja for, petlja while, switch (case) funkcija te naredba if-else.
4. BITWISE KONTROLA - Za direktno pristupanje bitovima i bajtovima.
5. POKAZIVAČI (POINTERI) - Pokazivaci su varijable koje sadrže memorijsku lokaciju neke druge varijable, tj. oni su 'pokazivači' na adrese drugih varijabli. Programski jezik C omogučava manipuliranje adresama varijabli.
6. OPĆA NAMJENA - U programskom jeziku C se rješavaju problemi iz svih područja.