C is a language that can be used to develop both 'user applications' and 'operating systems'. It allows you to have access to the machine language itself if you so choose (inline asm). Most of the unix operating system is written in C. It is a great language to start with (IMHO) because it contains the basic concepts of computer programming. As well as giving you a feel for what actually goes on in the machine itself. Higher level languages abstract you from the machine, usually (again IMHO) focusing more on the rapid development of Applications. Remembering that C++ was originally developed as C with classes, learning C is (again IMHO) almost a pre-requisite for learning C++.
I have found over the years that my understanding of the machine that I gained writing C has helped me immensely in designing more efficient applications in, say, VB.NET and other languages of it's ilk, as well as repairing the occasional bug that might appear in my High Level language code.
Just my opinion. I'm sure there are others
