C Language Course


C Language Course Overview

C programming language is so popular and used so widely is the flexibility of its use for memory management. Programmers have opportunities to control how, when, and where to allocate and deallocate memory. Memory is allocated statically, automatically, or dynamically in C programming with the help of malloc and calloc functions.

Initially, C was designed to implement the Unix operating system. Most of the Unix kernel, and all of its supporting tools and libraries, were written in C. Later other folks found it useful for their programs without any hindrance, and they began using it.

Another strong reason of using C programming language is that it sits close to operating system. This feature makes it an efficient language because system level resources, such as memory, can be accessed easily.

C is good choice for system-level programming. Nevertheless, it is not perfect for all programmers and all situations. C pointers are a common source of confusion and programming errors. C also lacks explicit support for useful abstractions such as classes and objects. That may be a reason C is not preferable language for application-level programming. Newer languages such as C++ and Java address these issues for application-level programs.

C is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.

This course is an entry level course for students. No skills required

This course is an entry level course for students. No skills required

The only course to crack entry level jobs in IT industry companies like TCS, cognizant, Amazon, Infosys, Tech Mahindra and more.

Introduction, Functions and Operators, Control Flow Constructs, the C Preprocessor, Simple I/O, Functions, Higher Dimensional Arrays, pointers, Structures, file I/O and more.

C Language Course Syllabus


  • What is C?
  • Background
  • Sample Program
  • Components of a C Program
  • Examples
  • Data Types
  • Variables
  • Naming Conventions for C Variables
  • Printing and Initializing Variables
  • Array Examples
  • Compiling and Executing a C Program

Functions and Operators

  • Examples of C Functions
  • Functions
  • sum Invoked from main
  • Invoking Functions
  • Elementary Operators
  • The operator= Operators
  • Operators
  • The Conditional Operator
  • Increment and Decrement Examples
  • Increment and Decrement Operators

Control Flow Constructs

  • Examples of Expressions
  • if
  • if else
  • while
  • for
  • Endless Loops
  • do while
  • break and continue
  • switch
  • else if

The C Preprocessor

  • #define
  • Macros
  • #include
  • Conditional Compilation
  • #ifdef
  • #ifndef

Simple I/O

  • Character I/O
  • End of File
  • Simple I/O Examples
  • Simple I/O Redirection
  • I/O with Character Arrays

More on Functions

  • General
  • Function Declarations
  • Returning a Value or Not
  • Function Prototypes
  • Arguments and Parameters
  • Organization of C Source Files
  • Extended Example
  • The getline Function
  • The strcmp Function
  • The check Function
  • The atoi Function
  • The average Function

Bit Manipulation

  • Defining the Problem Space
  • A Programming Example
  • Bit Wise Operators
  • Bit Manipulation Functions
  • Circular Shifts
  • Chapter 8: Strings
  • Fundamental Concepts
  • Aggregate Operations
  • String Functions

Higher Dimensional Arrays

  • Array Dimensions
  • An Array as an Argument to a Function
  • String Arrays
  • Chapter 10: Separate Compilation
  • Compiling Over Several Files
  • Function Scope
  • File Scope
  • Program Scope
  • Local static
  • register and extern
  • Object Files
  • Libraries
  • The C Loader
  • Header Files

Pointers (Part 1)

  • Fundamental Concepts
  • Pointer Operators and Operations
  • Changing an Argument with a Function Call
  • Pointer Arithmetic
  • Array Traversal
  • String Functions with Pointers
  • Pointer Difference
  • Prototypes for String Parameters
  • Relationship Between an Array and a Pointer
  • The Pointer Notation *p++

Pointers (Part 2)

  • Dynamic Storage Allocation – malloc
  • Functions Returning a Pointer
  • Initialization of Pointers
  • gets – a Function Returning a Pointer
  • An Array of Character Pointers
  • Two Dimensional Arrays vs. Array of Pointers
  • Command Line Arguments
  • Pointers to Pointers
  • Practice with Pointers
  • Function Pointers


  • Fundamental Concepts
  • Describing a Structure
  • Creating Structures
  • Operations on Structures
  • Functions Returning Structures
  • Passing Structures to Functions
  • Pointers to Structures
  • Array of Structures
  • Functions Returning a Pointer to a Structure

Structure Related Items

  • typedef – New Name for an Existing Type
  • Bit Fields
  • unions
  • Non-Homogeneous Arrays
  • Enumerations

File I/O

  • System Calls vs. Library Calls
  • Opening Disk Files
  • fopen
  • I/O Library Functions
  • Copying a File
  • Character Input vs. Line Input
  • scanf
  • printf
  • fclose
  • Servicing Errors – errno.h
  • Feof

Information about Files

  • The stat Function
  • File Existence
  • Telling Time – time and ctime
  • Telling Time local time

I/O With Structures

  • A Database Application
  • The menu Function
  • The fwrite Function
  • The create_db Function
  • The fread Function
  • The print_db Function
  • fseek
  • The retrieve_db Function
  • fflush and ftell

Useful Library Functions

  • strstr
  • strchr, strrchr
  • system
  • strtok
  • strspn, strcspn
  • Math Functions
  • Character Testing Functions
  • exit and atexit
  • signal
  • memcpy and memset
  • qsort
  • Binary Search – bsearch