
Explains hardware basics for programmers, covering input and output devices. Describes CPU, memory types—cache, RAM, and hard disk—and how operating system manages storage with Windows, Linux, Unix, and Mac OS.
Understand how cache, main memory, and hard disk balance access time, cost, and capacity, and how the operating system moves data between storage and memory.
Explore why programming languages matter by examining C's role as an early high-level language for low-level, hardware-close system software and embedded work with fast, compiled binaries.
Explore the C programming language as a low-level, fast language introduced in 1972, and see why it powers embedded systems and operating system kernels with pointers and hardware access.
C standards define the rules of the language and what is allowed. Compilers such as GCC and MSVC implement these standards and translate code to binary.
Explore core C terminology, including keywords, variables, and functions; compare statically and dynamically typed languages; learn about preprocessor directives, header files, library functions like printf and scanf, and macro expansion.
learn how C programs run by writing code in editors or IDEs; the preprocessor handles header declarations, the compiler creates object code, and the linker links libraries to form executable.
Explore your first C program by examining header files, the main function, and printf usage, then learn how compiling and linking produce an executable that prints geeks for geeks.
this lecture explains how C comments function as essential documentation, using multi-line and single-line styles, their history, and how to keep code clear.
Understand how variables map to main memory blocks, enabling data access and modification in C, with statically typed data types, user-defined types, structures, and meaningful names.
Learn the rules for valid variable names in C, including allowed characters, starting with a letter or underscore, avoiding keywords, and adopting camelCase or snake_case conventions, plus uppercase constants.
Explore the data types in C, including integers, characters, and floating point numbers. Learn about boolean types, signed and unsigned variants, format specifiers, arrays, pointers, and structs.
Explore the ranges of C data types, from unsigned char to long long, and understand how signed, two's complement, and floating point representations define overflow risk and precision.
Use the sizeof operator to know the size in bytes of a type, variable, or literal, noting it is compiler dependent and that expressions are evaluated at compile time.
Explore global and local variables, their scopes, and name shadowing. Learn how braces create scopes, how inner scopes access outer variables, how global variables initialize to zero, and extern basics.
const in C shows that placing const before a variable makes it read-only, though pointers can modify it via its address, and using const for pi centralizes constants.
Static variables in C initialize to zero when uninitialized and persist across function calls. Static local and global variables have internal linkage; extern enables external linkage.
Learn literals in C, including integers in decimal, hex (0x), and octal (0 prefix); explore binary literals (not standard) and floating-point literals with e and f/l suffixes, plus string literals.
Explore type conversion in the C language, showing how primitive types convert implicitly and explicitly, with examples of booleans, unsigned integers, widening rules, and explicit casting.
Learn to swap two numbers in C using a temporary variable, avoiding the faulty a = b; b = a method, and print the swapped values.
Explains input and output in C using standard streams stdin, stdout, and stderr, buffers, and common functions like scanf, printf, gets (deprecated), fgets, putchar, puts, and fputs.
Learn how to use printf in C to print strings and formatted data using placeholders like %d and %c, and to control output with escape sequences such as \n.
Learn how scanf reads input in C using a format string and addresses of variables using ampersand, unlike printf, with tips on integers, strings, and space separators.
Read a string with spaces from input using fgets in c, including the null terminator, so it reads at most limit-1 characters and is safer than gets, which is deprecated.
Learn how C format specifiers work: use %c for characters, %s for strings, and %p for addresses, with the address-of operator & and %n to count characters printed by printf.
Explore format specifiers for floating point numbers in C, including %f, %e, and %g, and learn how doubles, long doubles, and six digits after the decimal affect output.
Explore how to use format specifiers in C, including %c, %s, %p, and the address-of operator, to print characters, strings, and memory addresses, with printf and the %n behavior.
Master printf width and precision to format output in C. Learn how minimum width, flags, and precision affect strings and floating point numbers.
Learn how buffering works in C input and output with a two-integer program, where values read from the buffer are multiplied and printed.
Explore escape sequences in C, including printing double quotes and newlines with backslashes, and using double backslashes to display backslashes in strings, Windows paths illustrate escape sequence rules.
Explore arithmetic operators in C, including binary operators like plus, minus, multiplication, division, and remainder, and understand integer vs floating-point division and undefined behavior when dividing by zero.
Explore unary arithmetic operators, including postfix and prefix ++ and --, with examples showing how postfix returns the old value while prefix increments first, in C, C++, and Java.
Learn how C comparison operators evaluate two values, returning true (1) or false (0), with examples of <, >, <=, >=, ==, !=, and warn against assignment versus comparison.
Explore C assignment operators, from simple assignment to compound forms (+=, -=, *=, /=, %=), with practical examples and a preview of bitwise operators like and, or, xor, and shifts.
Explore how logical operators take boolean input and produce boolean output, connect comparisons with and or not, and illustrate short-circuiting in C and C++ with practical price-search examples.
Explore bitwise operators on binary representations of integers, focusing on and, or, and xor with 3 and 6. See how these enable arithmetic and boost performance.
Explore bitwise operators in C: left shift, right shift, and not, showing left shift multiplies by 2^y for 32-bit integers, right shift divides by 2^y, and not toggles bits.
Explore how bitwise not operates on signed numbers and how two's complement represents negative values in 32-bit integers, illustrating patterns such as 1 -> -2 and 5 -> -6.
Explore how operator precedence and associativity decide the order of operations in expressions, using examples like multiplication before addition, division and multiplication, and right-to-left assignment; use brackets to clarify.
Learn to compute the day before n days by mapping 0 to Sunday through 6 to Saturday, using n modulo 7, and wrapping negatives by adding 7.
Explore calculating the sum of natural numbers from 1 to n in C, using a for loop or the formula n(n+1)/2, with examples n=5 (15) and n=3 (6).
Learn how to obtain the last digit of any number using modulo 10 in C, with handling of negative inputs by negating the result.
Practice problems explore the comma operator, its left-to-right associativity, and how assignment and comparison yield outputs like 1 and 3, with booleans promoted to integers.
Learn conditional execution in C with if else, including input validation examples and age checks, and how single-line statements omit braces while multi-line blocks require them, with emphasis on scope.
Practice a C program that prompts for an integer and prints 'even' for even input and 'odd' otherwise, using an if-else structure and x % 2.
Explore how to implement a nested if-else decision structure in C to classify an input number as positive, negative, or zero, using multiple else-if branches.
Explore else if in C by implementing a complete program that reads a number and prints positive, negative, or zero using if, else if, and else.
Learn how the switch statement in C uses an integer control variable to select among multiple cases, with case constants, default handling, and the effect of break on fall-through.
Determine the cups game winner by testing whether n is even or odd using the modulo operator. If even, the opponent wins; if odd, the player wins.
Learn to determine the largest of three numbers in C by comparing a with b and c using if statements, handling equal values, and printing which variable is largest.
Learn to determine leap years in C using divisibility rules: a year is leap if divisible by 4 and not by 100, unless divisible by 400; consider 2100 and 2096.
Implement a simple calculator in C that performs addition, subtraction, or multiplication using a numeric operation flag (1, 2, or 3) with inputs operation, x, y, and handle invalid operations.
Explore functions in the C programming language, learning how to define and call reusable code to print greeting and exit messages, and manage return types and parameters.
Explore how functions reduce code duplication, improve maintainability, enable modularity, provide abstraction via library functions, and prevent variable name collisions.
Learn the difference between function declaration (prototype) and definition, how order affects compilation and linking, and how header files and library functions enable safe, efficient code.
Explore how functions interact in C through a function call stack, illustrating main, function calls, and the last in, first out execution order.
Explores inline functions in C, showing how the inline keyword suggests replacing a function call with its body to reduce overhead, while contrasting with macros and noting binary size growth.
Explore how missing prototypes trigger compilation errors and how prototypes above main fix it, and how global, local, and static variables influence C function outputs.
Identify the first digit of a number by repeatedly dividing by ten until a single digit remains, and return that digit with a simple first digit function in C.
Learn how to compute prime factors by dividing a number starting from two, extracting prime factors like 3, 3, and 11 for 99, and repeating until no remainder.
Master the while loop in C by understanding syntax, conditions, and scope; learn single- and multiple-statement blocks and traps that cause infinite loops, such as missing increments or stray semicolons.
Master the for loop in C by understanding initialization, condition checks, and loop variable changes, then compare it to while loops, scopes, and syntax quirks like semicolons and braces.
Explore the do-while loop in C, which executes at least once before the condition is checked, and compare it with while and for loops, with a menu example.
Demonstrate the break statement in C by exiting loops and switches when a condition is met, illustrated with a for loop finding the smallest divisor of n.
Learn how the continue statement skips the rest of a loop iteration to print only numbers not divisible by a given x, with practical examples and alternatives.
Understand nested loops in C, where an outer loop iterates 1 to n and an inner loop prints number's 1 to 10 table, illustrating nesting levels for matrices and grids.
Learn to create patterns in programming with loops, printing stars and numbers in rows and columns using nested for loops and newline control to illustrate pattern formation.
Generate a square star pattern by filling an n-by-n grid with stars using nested loops; the video walks through inputting n, iterating rows and columns, and printing stars with newlines.
Create a triangular star pattern in C by using nested for loops to print stars from 1 to the current row, with input n determining the number of rows.
Learn to generate an inverted triangle pattern in C by managing spaces and stars across rows and columns for a given n, using loops and input handling.
Compute the factorial of a number by iteratively multiplying down from n to 1, using an answer initialized to 1 and a loop to update and print the result.
Learn to determine if a number is prime by testing divisibility from 2 to n-1 in C, and correctly classify 0 and 1 as non-prime.
Learn to find the next prime after a given number n by starting at n+1 and checking divisibility from 2 to n-1 with a for loop.
Determine all divisors of a number by testing each value from 1 to n and printing i when n mod i equals zero.
Compute the greatest common divisor of two numbers by checking divisors up to the smaller value, using examples with 10 and 15 and 4 and 8 to illustrate.
Learn to compute the lowest common multiple of two numbers by iterating from max(a, b) to a*b and checking divisibility, with examples 6 and 9 and 7 and 8.
Explore Fibonacci numbers through a stair-step puzzle and a C program. Update a and b with c = a + b to print the first n values.
Count digits by dividing the number by ten until it becomes zero, counting each division. See how the loop runs, initializes variables, and outputs the digit count with examples.
Learn to print the multiplication table of a given number using a for loop from 1 to M, using printf to display each n × i on separate lines.
Explore how arrays in C store a collection of items of the same type, including primitive and user-defined types like structures, with examples like friends, student marks, and item prices.
Learn how to declare and initialize arrays in C, including type, name, and size, with initializer lists, contiguous storage, and zero-initialization rules.
Learn how to access and modify array elements using zero-based indexing, observe arr[2] yielding 30 and arr[0] yielding 10, and understand the risks of invalid indices in C.
Explore how the sizeof operator reports a C array’s total bytes and compute its element count by dividing sizeof(array) by sizeof(array[0]).
Master array traversal in C with for and while loops, compute the array size using sizeof, and modify elements in place (e.g., doubling values) across practical examples.
Learn the two main categories of C arrays: stack-allocated local arrays and dynamically allocated ones you manage with pointers. Compare fixed-size arrays with dynamic sizing and memory lifetime.
Compare adjacent elements in the array to verify non-decreasing order, and return 1 if sorted or 0 otherwise while handling empty or single-element arrays.
In this lecture, learn how to count distinct elements in an array using a nested loop approach, comparing each element with previous ones and updating a count.
Learn to compute the sum of array elements in C by initializing a sum variable, iterating with a for loop, and printing the final total.
Learn to compute the average of an array by summing elements and dividing by the count, with examples using 1,2,3 and 10,20,30,40, and guidance on using double for the result.
Identify the maximum element in an array by initializing max with the first element and iterating to update it when a larger value appears, then print the result.
Explore the ampersand and dereference operators in C, using them to obtain a variable’s address and read the value at address, with notes on unary versus binary use and printing.
Learn how pointers in C store addresses and declare pointer variables. Practice dereferencing to read or modify values and observing pointer sizes across types.
Explore how pointers in C enable changing function parameters, efficient passing of large objects, dynamic memory allocation, and implementing data structures like linked lists, plus array handling.
Explore function parameters and pointers in C, comparing pass by value with pass by reference via pointers. Learn how addresses and dereferencing modify caller variables efficiently, especially for large structures.
Understand how array parameters become pointers when passed to a function, making sizeof unreliable; always pass the array size as a separate parameter to let the function know the length.
Master pointer arithmetic in C by using the plus, minus, and increment operators. Move through arrays by element size, dereference, and compute the number of elements between pointers.
Explore void pointers in C, their lack of associated type, bidirectional conversions, and how to safely cast and dereference them for generic memory access, including malloc, calloc, and qsort use.
Explore null in C: understand how null pointers indicate invalid memory, how to safely dereference, and how null signals empty containers, ends of linked structures, and memory allocation failures.
Understand the differences and similarities between pointers and arrays in C. Learn how array names yield the address of the first element, how pointer arithmetic works, and how sizes differ.
Explore pointer to pointer concepts in C, showing how a double pointer can modify a pointer, swap string literals, and manage null and constant pointers.
Practice questions reveal how sizeof behaves with arrays versus pointers, and how dereference, pre/post increment, and pointer arithmetic affect values and addresses in C.
Explore how a C program's memory layout stores global, static, local variables across code, data, heap, and stack, and how activation records manage dynamic memory with malloc, calloc, and free.
Explore dynamic memory allocation in C programming using malloc and calloc on the heap, compare initialization to zero with calloc, and learn to free memory to avoid leaks.
Learn how memory leaks occur when dynamically allocated memory isn’t freed in infinite loops, and how to prevent crashes by using proper allocation and deallocation with free.
One of the top C Programming Courses, this C Programming Course - Complete Beginner to Advanced is designed to help you learn C programming from the ground up. As we know, the C language is the mother of all programming languages, so learning C programming language will help you to understand the concepts of programming languages.
In this C Language Course by GeeksforGeeks, we will begin with the foundations of C programming, covering basic syntax, data types, variables, operators, expressions, and input/output operations. You'll learn about control structures like if-else statements and loops, and dive into core concepts such as functions, arrays, strings, and pointers.
As you progress, you'll grasp advanced topics like complex data structures (linked lists, stacks, and queues), file handling, dynamic memory allocation, and memory management techniques. The course also introduces object-oriented programming (OOP), exploring classes, objects, inheritance, polymorphism, and encapsulation.
This online C Programming Course is curated by competitive programming experts and industry veterans, including GeeksforGeeks CEO Mr. Sandeep Jain, ensuring you receive top-notch training and skill enhancement. Engage with practical C programming examples and exercises to solidify your learning.
Why Learn C?
Learning C is beneficial because it gives you a deep understanding of how computers work. Many other programming languages are based on C, so mastering it can make learning other languages easier. C is also used in many critical systems, so knowing it can open up job opportunities in fields like software development, embedded systems, and systems programming.
Who Should Enroll:
Beginners: People who have never programmed before and want to start learning C.
Students: College and university students who want to improve their programming skills and get hands-on experience.
Aspiring Programmers: Those who want to become software developers, game developers, or work in tech-related fields.
Professional Developers: Experienced programmers who want to learn more about C and advanced concepts.
Software Engineers: Professionals looking to add C programming to their skill set and enhance their career.
IT Professionals: System administrators, network engineers, and IT specialists who need C for low-level programming or hardware interfacing.
Prerequisites:
Basic Computer Skills: Familiarity with using a computer, including navigating files and folders.
Basic Math Skills: Understanding basic mathematical concepts like algebra will help in understanding programming logic.
Course Materials:
Online Resources: Access to coding platforms and exercises for hands-on practice.
Software: Guidance on setting up the C development environment.
Instructor:
The course is developed and taught by industry experts and competitive programming enthusiasts, including GeeksforGeeks CEO Mr. Sandeep Jain, who brings their experience and expertise to provide you with the best learning experience.