C is a general-purpose mid-level programming language developed by Dennis M. Ritchie at Bell Laboratories in 1972. It was initially used for the development of UNIX operating system, but it later became popular for a wide range of applications.
- C is considered mother of all programming languages as many later languages like Java, PHP and JavaScript have borrowed syntax/features directly or indirectly from the C.
- Learning C programming first helps to learn any modern programming language as it provide a deeper understanding of the fundamentals of programming and operating system with features like pointers.
- C is widely used in operating systems, embedded systems, compilers, databases, networking, game engines and real-time systems for its efficiency to work in low resource environment and hardware-level support.
Basics
This section teaches you how to store and output data, perform arithmetic and other operations, control the program flow, etc.
- C Introduction
- Compilation Process
- Identifiers
- C Keywords
- C Variables
- Data Type in C
- Quiz: C Basics | Variables | Data Types
- Input and Output in C
- Operators
- Quiz: Input and Output | Operators
- Conditional Statements
- Loops
- Quiz: Conditional Statements and Loops
Functions
Functions are block of code that performs a specific task. They allow programmers to write modular and reusable code.
- Functions in C
- Parameter Passing Techniques
- Main Function
- Recursion
- Inline Function
- Nested Functions
- Quiz: Functions
Compound Data Types
Compound data types are created from primitive data types and provides a different way to use them according to our needs.
- C Arrays
- Pointer in C
- C Strings
- Quiz: Array | Pointers | Strings
- Structures
- Unions
- Enumeration (or enum)
- Quiz: Structure & Union
Memory Management
The dynamic memory management in C uses functions like malloc(), calloc(), realloc(), and free() to manually manage the memory while avoiding errors such as memory leak.
File Handling
This section teaches you how to work with files in C, including creating, reading, writing, manipulating and deleting files.
- Basics of File Handling
- Read a File
- Read/Write Structure From/to a File
- EOF, getc() and feof()
- Delete a File
- Quiz: File Handling
Error Handling
Unlike other programming languages that have automatic error handling, In C language error handling is to be manually done by the developers using error-handling methods, debugging strategies, and functions like perror(), strerror(), etc.
Miscellaneous Concepts
This section explores various essential of C language that do not fit into a single category but play a vital role in C programming and provide advanced functionality to your program.
- C Preprocessors
- Macros
- Quiz: Preprocessors and Macros
- C Header Files
- Date and Time
- Linkage
- Storage Classes
- Quiz: Storage Classes
Advanced Concepts
This section teaches you high-level C programming techniques such as multi-threading, signal handling, socket programming, etc which are used in creating high-performance robust applications and systems.
- Variadic Functions
- Input-Output System Calls
- Signals
- Socket Programming
- _Generics Keyword
- Multithreading in C
Important Links
What's Next?
Now that you have a strong foundation in C language, you can explore more advanced topics such as Data structures and Algorithms in C. Keep challenging yourself with our collection of practice problems to further strengthen you understanding of the language: