The Ansi c book by C.Balagurusamy is the best book for practicing and to Learn C programming

C language is highly portable language, So, C programs that written for one computer can easily run on another computer without any change or by doing a little change, It has a variety of data types and powerful operators, So , The programs written in C language are efficient, fast and easy to understand..

Advantages of C Language

C programming language is the structured programming language, So, It helps you to think of the problem in terms of function modules or blocks, Collection of these modules makes a complete program, This modular structure makes the program debugging, testing and maintenance easier.

C programming language is a building block for many other currently known languages, Python is a fully Object-Oriented High-Level programming language, It is written in C ( perhaps C++ too ) .

C programming language is a small language, The concepts that it requires is quite short , There are 32 keywords in ANSI C only and its strength lies in its built-in functions, Many standard functions are available that can be used for developing the programs .

C language has the ability to extend itself , It is the collection of functions which are supported by the C library this makes us easier to add our own functions to the C library, Because of the availability of a large number of functions , the programming task becomes simple.

Disadvantages of C Language

C programming language does not support Object-Oriented Programming ( OOP ) features such as Inheritance , Encapsulation , Polymorphism etc , that’s why C++ is developed, It has no strict type checking , For example , we can pass an integer value , It is for the floating data type .

C language is a procedure oriented language , So , You should develop your program using procedure oriented language only and you have to implement any algorithms as a set of function calls .

C programming language does not offer support for namespace like C++ , Without Namespace, we can’t declare two variables of same name and you can’t use the same variable name again in one scope.