С╕ була розроблена ╕ вперше застосована Денисом Рич╕ на машин╕ DEC PDP-11, використовуючи операц╕йну систему ЮНИКС. С╕ ╓ результатом творчого процесу, який почався з╕ старшо╖ мови, яка ма╓ назву BCPL(Б╕С╕П╕еЛ), автором яко╖ ╓ Мартин Ричардз. BCPL вплинула на створення мови В(Б╕), розроблено╖ Кен Томсоном. Саме це й призвело до створення С╕, в 70-их роках минулого стол╕ття.
У продовж багатьох рок╕в, де-факто стандартом С╕ був стандарт, описаний в книз╕ Браяна Керн╕ган та Дениса Рич╕ "The C Programming Language" (видавництво Prentice Hall, 1978). Однак, у зв'язку ╕з зростанням популярност╕ С╕, у 1983 роц╕ було орган╕зовано ком╕тет для створення ANSI стандарту С╕ (АНС╤ (American National Standards Institute(Американський Нац╕ональний ╤нститут Стандарт╕в))). Процес стандартизац╕╖ зайняв ш╕сть рок╕в (набагато довше, а н╕ж хтось би спод╕вався). АНС╤ С╕ стандарт був доведений до к╕нця у 1989 роц╕, а перш╕ коп╕╖ були доступн╕, у загальному обсяз╕, у 1990. Цей стандарт був, дещо, модиф╕кований у 1996 роц╕. Сьогодн╕, практично ус╕ комп╕лятори С╕ сум╕сн╕ з ANSI С╕ - саме т╕╓ю верс╕╓ю, яку ви будете вивчати у ц╕й книз╕. ╤ншими словами, ця книжка вчить стандартну верс╕ю мови С╕.
С╕, дуже часто, вважа╓ться мовою середнього р╕вня. До С╕, у св╕т╕ було два типи мов програмування комп'ютер╕в. Одна назива╓ться Асемблер - це символ╕чне представлення машинних ╕нструкц╕й, як╕ викону╓ комп'ютер. Мова Асемблер ╓ мовою низького р╕вня, оск╕льки програм╕ст працю╓ безпосередньо з машинними ╕нструкц╕ями (у форм╕ символ╕в), як╕ комп'ютер виконуватиме. Асемблер може застосовуватися для створення дуже ефективних програм, але Асемблер не забезпечу╓ жодних контролюючих структур, або функц╕й вводу чи виводу. Ус╕ ц╕ реч╕ мусять бути сконструйован╕ вручну, самим програм╕стом. На противагу Асемблеров╕, будь-яка мова високого р╕вня ╓ чимось под╕бним до буферу м╕ж програм╕стом ╕ машиною. Мови високого р╕вня забезпечують р╕зн╕ структури контролю, команди вводу, виводу, та ╖м под╕бне, що забезпечу╓ легше та швидше програмування. Однак, елементи мов високого р╕вня не завжди в╕дносяться, безпосередньо до того шляху, у який комп'ютер викону╓ програму. Така в╕дм╕нн╕сть часто робить програми, написан╕ на мов╕ високого р╕вня, менш ефективними, а н╕ж т╕, що написан╕ на Асемблер╕. У зв'язку з тим, що багато людей вважають програмування на Асемблер╕ важким та виснажливим заняттям, завжди ╕снувала потреба у так╕й мов╕, яка могла б забезпечити р╕вновагу м╕ж легк╕стю користування та ефективн╕стю. Багато програм╕ст╕в в╕дчувають, що С╕, якраз ╕ забезпечу╓ цю р╕вновагу. С╕ усп╕шно по╓дну╓ структурну будову мови високого р╕вня з потужн╕стю та ефективн╕стю мови Асемблер. Оск╕льки, С╕ заповню╓ щ╕лину м╕ж мовою Асемблер та мовами високого р╕вня, ╖╖ вважають мовою середнього р╕вня.
На початку, С╕, головним чином, використовувалася для створення системного програмного забезпечення. Системне програмне забезпечення по╓дну╓ в соб╕ так╕ програми, як╕ допомагають внутр╕шн╕й робот╕ комп'ютера. Серед них, так╕ програми, як операц╕йн╕ системи, комп╕лятори та редактори. Однак, з╕ зростанням популярност╕, С╕ почали використовувати у програмах загального призначення. Сьогодн╕, С╕ використову╓ться програм╕стами для вир╕шення, практично, будь-яких завдань у програмуванн╕. Це мова, яка вижила ╕спит часу ╕ показала, що вона ╓ потужною та ун╕версальною мовою.