COMPLETE DETAILED NOTES ON C
PROGRAMMING
1. Introduction to C Programming
C is a general-purpose, structured, and procedural programming language developed by Dennis
Ritchie in 1972 at Bell Laboratories. It was originally designed to develop the UNIX operating
system. Due to its efficiency and flexibility, C became one of the most widely used programming
languages in the world.
C is often called a middle-level language because it combines the features of both high-level and
low-level languages. It allows direct memory manipulation using pointers while also supporting
structured programming concepts such as functions and control structures.
Features of C
• Simple and powerful syntax • Portable (machine independent) • Fast execution speed • Rich set of
operators • Extensive standard library • Supports modular programming • Allows dynamic memory
allocation
2. Structure of a C Program
A C program is divided into multiple sections. The basic structure includes: 1. Documentation
Section 2. Link Section (#include) 3. Definition Section (#define) 4. Global Declarations 5. main()
Function 6. User-defined Functions
Example: #include int main() { printf("Hello World"); return 0; } The main() function is the entry point
of every C program.
3. Data Types in C
Data types define the type of data a variable can store. C supports several basic data types:
Primary Data Types: int – stores integers float – stores decimal values double – stores large
decimal values char – stores single characters
Derived Data Types: Arrays – collection of similar elements Pointers – store memory addresses
Structures – group different data types Unions – share memory among members
The sizeof() operator is used to determine memory size occupied by a data type.
4. Variables and Constants
Variables are named memory locations used to store data values. Each variable must be declared
before use.
Rules for naming variables: • Must start with letter or underscore • Cannot contain spaces • Cannot
use keywords • Case sensitive
Constants are fixed values that cannot be changed during program execution. They can be defined
using: const keyword #define preprocessor directive
5. Operators in C
Operators perform operations on variables and values.
Arithmetic Operators: +, -, *, /, % Relational Operators: ==, !=, >, <, >=, <= Logical Operators: &&, ||,
! Assignment Operators: =, +=, -=, *=, /= Bitwise Operators: &, |, ^, ~, <<, >> Increment/Decrement:
++, --
6. Input and Output
C uses standard input and output functions defined in stdio.h.
printf() is used to display output. scanf() is used to take input from user.
Common Format Specifiers: %d – integer %f – float %lf – double %c – character %s – string
7. Control Statements
Control statements determine the flow of program execution.
Decision Making Statements
if if-else nested if switch
Looping Statements
for loop – executes fixed number of times while loop – executes while condition is true do-while loop
– executes at least once
Jump Statements
break – exits loop continue – skips iteration goto – jumps to label
8. Functions in C
Functions are blocks of code that perform specific tasks. They improve modularity and reusability.
Syntax: return_type function_name(parameters) { statements; }
Types of Functions: • Library Functions (printf, scanf) • User-defined Functions • Recursive
Functions
9. Arrays
An array is a collection of elements of the same data type stored in contiguous memory locations.
Single-dimensional array example: int arr[5];
Multidimensional array example: int matrix[3][3];
10. Strings
Strings in C are arrays of characters ending with null character '\0'.
Important String Functions: strlen() – find length strcpy() – copy string strcat() – concatenate
strcmp() – compare strings
11. Pointers
A pointer is a variable that stores the address of another variable.
Example: int x = 10; int *ptr = &x;
Pointers are used in: • Dynamic memory allocation • Arrays and strings • Structures • Passing
arguments to functions
12. Dynamic Memory Allocation
Dynamic memory allocation allows memory to be allocated during runtime using stdlib.h functions.
malloc() – allocates memory calloc() – allocates and initializes memory realloc() – resizes memory
free() – deallocates memory
13. Structures and Unions
Structure is a user-defined data type that groups different data types together.
Union is similar to structure but shares memory location among members.
14. File Handling
C provides file handling capabilities using file pointers.
Functions: fopen() fclose() fprintf() fscanf() fread() fwrite()
15. Recursion
Recursion occurs when a function calls itself. A base condition is necessary to stop recursion.
16. Storage Classes
auto – default register – stored in CPU register static – retains value extern – global reference
17. Preprocessor Directives
#include – include header files #define – define constants #ifdef / #ifndef – conditional compilation
18. Command Line Arguments
int main(int argc, char *argv[]) argc – number of arguments argv – argument vector
19. Error Handling
C provides error handling using: perror() strerror() errno variable
20. Best Programming Practices
• Always initialize variables • Free dynamically allocated memory • Use meaningful names • Follow
indentation • Comment code properly
21. Practice Programs (Concepts to Implement)
• Factorial using recursion • Fibonacci series • Prime number check • Matrix multiplication • File
copy program • Structure-based student record system