C and C++

The C programming language, a descendant of several older languages (including B), was developed by Dennis Ritchie at Bell Laboratories in 1972. C is a simple language in its syntax, with relatively few instructions. However, it has been extended considerably by Microsoft (among others) for use in the PC environment.

The strength of C and its descendants, such as C++, are that it combines the advantages of a high-level programming language, such as relative readability, with the ability to reach down to the operating system and hardware levels of the computer. Unfortunately, the power of C can sometimes be dangerous in the hands of, shall we say, programmers of only modest capability. Also, the syntax of C allows for what some programmers consider "clever" or "elegant" programming style, but which may be more accurately termed "highly unreadable."

For comparison purposes, here is the C language version of the BASIC program that computes the average of some numbers. I think you will agree that it is not quite as readable as the earlier BASIC version. Lines beginning with // are comment lines that are ignored by the computer.

// C program to compute the average
// of a set of at most 100 numbers

#include <stdio.h>

void main(void)
{
   // Declare some variables
   int Num, i;
   float Sum, NextNum, Ave;
   
   // Ask for the number of numbers
   printf( "Enter number of numbers: " );
   scanf( "%u", &Num );

   // If Num is between 1 and 100 then proceed
   if( (Num > 0) && (Num <= 100) )
   {
      Sum = 0.0;
      // Loop to collect the numbers to average
      for( i = 1; i <= Num; i++ )
      {
         // Ask for next number
         printf( "Enter next number: " );
         scanf( "%f", &NextNum );

         // Add the number to the running sum
         Sum += NextNum;
      }
      
      // Compute the average
      Ave = Sum / Num;

      //Display the average
      printf ("The average is: %f\n", Ave );
   }
}

An object-oriented extension to C, known as C++, was developed in the early 1980s by Bjarne Stroustrup (also at Bell Labs).