زبان C در سال 1970 توسط دنيس ريچي طراحي گرديد. اين زبان تكامل يافته زبان BCPL ميباشد كه طراح آن مارتين ريچاردز است ،و زبان BCPL از زبان B كه طراح آن كن تامپسون مي باشد ، نتيجه شده است . زبان C معمولا" يك زبان مياني ناميده مي شود . اين بدان معني نيست كه آموزش اين زبان مشكل است ، يا قدرت آن از زبان هاي برنامه سازي مثل پاسكال و بيسيك كمتر است و يا اين كه مشكلاتي مشابه زبان اسمبلي براي برنامه نويس ايجاد مي كند.
علت مياني بودن زبان C اين است كه عناصر زبان هاي سطح بالا را با خصيصه تابعي زبان اسمبلي درهم آميخته است . زبان C همانند ساير زبانهاي مياني با مفاهيم بيت ، بايت و آدرس كه از عناصر ابتدايي ماشين هستند سر و كار دارد . يعني در اين زبان مي توان محتويات بيت ها و بايت ها را تيز تغيير داد .
برنامه هاي نوشته شده به زبان C براحتي از ماشيني به ماشين ديگر قابل انتقال مي باشند . مثلا" برنامه نوشته شده براي كامپيوتر APPL در كامپيوترهاي IBM قابل اجرا است . اين خصيصه را قابل حمل بودن (Portability) زبان مي گويند . كليه زبان هاي برنامه سازي سطح بالا و مياني داراي نوعهاي داده (data types) هستند . هر نوع داده ، مجموعه اي از مقادير را مشخص مي كند كه اعمال خاصي روي آنها قابل انجام است . نوع داده اي كه در اكثر زبانها وجود دارد عبارتند از : اعداد صحيح ، كاراكتري و اعداد اعشاري . C داراي 5 نوع داده اصلي است كه در آن تقريبا" تبديل هر نوع داده به نوع ديگر امكان پذير است . مثلا" در يك عبارت مي توان نوع كاراكتري را با نوع عددي صحيح و يا اعشاري تركيب كرد . همانند زبان هاي ALGOL، PASCAL، و... يك زبان ساخت يافته است . يك زبان برنامه سازي ساخت يافته امكانات زيادي ، از جمله استفاده از چند ساختار حلقه سازي مثل while، do-while،و forو را فراهم مي كند . در اين گونه زبان ها از goto به ندرت استفاده مي شود و نوشتن دستورات برنامه در هر ستوني از خط و در هر جاي فايل امكان پذير بوده ، مثل زبان فرترن مقيد به ستون هاي خاصي نيستند. استفاده از زيربرنامه ها و بلاك ها نيز از خصيصه هاي اين نوع زبان ها هستند .
هر برنامه در زبان C داراي خصيصه هايي است كه بعضي از آنها عبارتند از در زبان C هر دستور برنامه به يك ; ختم مي شود هر دستور ميتواند درچند خط ادامه داشته و يك خط ممكن است شامل چند دستور باشد حداكثر طول يك خط برنامه 254 كاراكتر است براي داشتن توضيحات در برنامه كافي است آنها را دربين /*و *و/ قرار داد
امروزه C در اكثر امور برنامه نويسي مورد استفاده قرار مي گيرد . زيرا اين زبان هم داراي خصيصه " قابل حمل بودن " است و هم داراي كارآيي خوبي مي باشد و سرعت زياد C بر محبوبيت آن افزوده است . مساله قابل حمل بودن ، يك مساله بسيار مهم است زيرا هم موجب صرفه جويي در وقت شده و هم باعث صرفه جويي در هزينه ها مي گردد . زبان C فقط داراي 32 كلمه كليدي است كه 27 كلمه كليدي آن توسط ريچي (طراح زبان ) معرفي شده و 5 كلمه كليدي ديگر توسط موسسه استاندارد سازي زبان به آن اضافه شده است . اين تعداد در مقايسه با 159 كلمه كليدي كه در زبان بيسيك وجود دارد قابل توجه است .