Address Operation - Substraction

Duration: 2 min

This video lesson is available to enrolled students.

Enroll to watch — GATE Guidance by Sanchit Sir

AI Summary

An AI-generated summary of this video lecture.

This lecture segment introduces pointer subtraction in C programming, specifically focusing on subtracting a constant from an address. The instructor explains that when a constant is subtracted from a pointer, the pointer moves backward by multiples of its data type's size. The syntax `ptr = ptr - n;` is presented as the standard method for this operation. A concrete example uses an integer array `int arr[5] = {10, 20, 30, 40, 50};` where a pointer `p` is initialized to the fourth element (`&arr[3]`). By executing `p = p - 1;`, the pointer moves back one integer size to point to `arr[2]`. Visual aids include hand-drawn memory diagrams and on-screen text calculations showing address changes, such as moving from address 1006 to 1004 assuming a 2-byte integer size.

Chapters

  1. 0:00 2:00 00:00-02:00

    The video begins by defining pointer subtraction rules, stating that subtracting a constant moves the pointer backward by `n * sizeof(data_type)`. On-screen text displays the syntax `ptr = ptr - n;` alongside an integer array example. The instructor sketches a hand-drawn memory diagram to visualize the array structure, showing elements 10 through 50. A pointer `p` is initialized to index 3 (`&arr[3]`). The operation `p = p - 1;` is demonstrated, resulting in the pointer moving from index 3 to index 2. The visual evidence confirms that the address changes based on the data type size, with text explicitly noting `p now points to arr[2], i.e., address of 30`.

  2. 2:00 2:19 02:00-02:19

    In the final segment, the lesson concludes with a specific numerical calculation of pointer arithmetic. The instructor shows that subtracting 1 from the pointer `p` (initialized at address 1006) results in a new address of 1004. This calculation is derived from the formula `1006 - 1 * 2 = 1004`, explicitly assuming a 2-byte integer size. The on-screen text reiterates the rule that pointers move backward by multiples of their data type's size. The visual diagram reinforces this by showing the pointer shifting from index 3 back to index 2, confirming that `p` now points to the address of value 30.

The lecture effectively demonstrates pointer subtraction by combining syntax rules with visual memory diagrams. The core concept is that `ptr - n` moves the pointer backward by `n * sizeof(type)`. The example of decrementing an integer pointer from index 3 to 2 serves as a practical application, showing how address arithmetic works in memory. The calculation `1006 - 2 = 1004` provides a concrete numerical verification of the theoretical rule. This progression from abstract syntax to specific memory addresses ensures students understand both the code and the underlying hardware behavior.