C has had a huge influence on modern-day programming languages, many of which borrow heavily from it. Of the many C-based languages, several are especially prominent:
C++ includes all the features of C, but adds classes and other features to support object-oriented programming.
Java is based on C++ and therefore inherits many C features.
C# is a more recent language derived from C++ and Java.
Perl was originally a fairly simple scripting language; over time it has grown and adopted many of the features of C.
Considering the popularity of these newer languages, it's logical to ask whether it's worth the trouble to learn C. I think it is, for several reasons. First, learning C can give you greater insight into the features of C++. Java, C#, Perl, and the other C-based languages.
Programmers who learn one of these languages first often fail to master basic features that were inherited from C. Second, there are a lot of older C programs around; you may find yourself needing to read and maintain this code. Third, C is still widely used for developing new software, especially in situations where memory or processing power is limited or where the simplicity of C is desired.
General purpose language.
Structured programming language.
Flexibility towards systems programming.
Flexibility towards application programming.
Availability of large number of operators.
Availability of extensive library functions.
Enhancing basic functionality.
Availability for computers of all types.
Programs highly portable onto multiple platforms.
Strengths and Weaknesses of C
Like any other programming language, C has strengths and weaknesses. Both stem from the language's original use (writing operating systems and other systems software) and its underlying philosophy:
C is a low-level language. To serve as a suitable language for systems programming, C provides access to machine-level concepts (bytes and addresses, for example) that other programming languages try to hide. C also provides operations that correspond closely to a computer's built-in instructions, so that programs can be fast. Since application programs rely on it for input/output, storage management, and numerous other services, an operating system can't afford to be slow.
C is a small language. C provides a more limited set of features than many languages. To keep the number of features small. C relies heavily on a “library” of standard functions. A “function” is similar to what other programming languages might call a “procedure.” “subroutine,” or “method”.
C is a permissive language. C assumes that you know what you're doing, so it allows you a wider degree of latitude than many languages. Moreover, C doesn't mandate the detailed error-checking found in other languages.