در سال ۱۹۶۷ مارتین ریچاردز زبان BCPL را برای نوشتن نرمافزارهای سیستمعامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال ۱۹۷۰ کن تامسون زبان B را بر مبنای ویژگیهای زبان BCPL نوشت و از آن برای ایجاد اولین نسخههای سیستمعامل یونیکس در آزمایشگاههای بل استفاده کرد. زبان C در سال ۱۹۷۲ توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگیهای جدیدی همچون نظارت بر نوع دادهها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستمعامل یونیکس استفاده کرد اما بعدها اکثر سیستمعاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب "The C Programming Language" در سال ۱۹۷۸ توسط برایان کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.
متأسفانه استفاده گسترده این زبان در انواع کامپیوترها و سختافزارهای مختلف باعث شد که نسخههای مختلفی از این زبان به وجود آید که با یکدیگر ناسازگار بودند. در سال ۱۹۸۳ مؤسسه استانداردهای ملی آمریکا (ANSI) کمیتهای موسوم به X3J11 را را مأمور کرد تا یک تعریف فاقد ابهام و مستقل از ماشین را از این زبان تدوین نماید. در سال ۱۹۸۹ این استاندارد تحت عنوان ANSI C به تصویب رسید و سپس در سال ۱۹۹۰، سازمان بینالمللی استانداردسازی (ISO) نیز این استاندارد را پذیرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گردید.
در سالهای بعد و با ظهور روشهای برنامهنویسی شئگرا نسخه جدیدی از زبان C بنام ++C توسط بییارنه استراستروپ در اوایل ۱۹۸۰ در آزمایشگاههای بل توسعه یافت. در ++C علاوه بر امکانات جدید، خاصیت شئگرایی نیز به C اضافه شدهاست.
با گسترش شبکه و اینترنت، نیاز به زبانی احساس شد که برنامههای آن بتوانند بر روی هر ماشین و هر سیستمعامل دلخواهی اجرا گردد. شرکت سان مایکروسیستمز در سال ۱۹۹۵ میلادی زبان جاوا را برمبنای C و ++C ایجاد کرد که هماکنون از آن در سطح وسیعی استفاده میشود و برنامههای نوشته شده به آن بر روی هر کامپیوتری که از جاوا پشتیبانی کند (تقریباً تمام سیستمهای شناخته شده) قابل اجرا میباشد.