C documentation V1 Help

Pointer Arithmetic

Pointer arithmetic in C involves manipulating memory addresses using pointers, providing a powerful mechanism for navigating through arrays, strings, and data structures. This section explores the principles of pointer arithmetic and its applications in various scenarios.

Basics of Pointer Arithmetic

  • Pointer arithmetic allows you to perform arithmetic operations on pointers. When you add or subtract an integer value from a pointer, it moves to the memory location of the corresponding element in the array:

    int integerArray[5] = {10, 20, 30, 40, 50}; int *pointerToArray = integerArray; // Move to the second element pointerToArray += 1; // Now points to the element with value 20

Here, pointerToArray is incremented by 1, pointing to the second element in the array.

Increment and Decrement Operations

  • Incrementing and decrementing a pointer adjusts its address based on the size of the data type it points to:

    char charArray[3] = {'A', 'B', 'C'}; char *pointerToChar = charArray; // Move to the next character pointerToChar++; // Now points to 'B'

In this example, pointerToChar is incremented by 1, moving to the next character.

Pointer Arithmetic with Arrays

  • Pointer arithmetic is often used to traverse arrays:

    int integerArray[5] = {1, 2, 3, 4, 5}; int *pointerToArray = integerArray; // Access the third element int thirdElement = *(pointerToArray + 2); // Retrieves the value 3

The expression *(pointerToArray + 2) calculates the address of the third element.

Pointer Arithmetic and Strings

  • Pointer arithmetic is valuable when working with strings:

    char str[] = "Hello"; char *ptr = str; // Access the second character char secondChar = *(ptr + 1); // Retrieves 'e'

Here, ptr + 1 calculates the address of the second character in the string.

Pointer Arithmetic and Dynamic Allocation

  • Pointer arithmetic is often used with dynamically allocated memory:

    int *dynamicArray = (int *)malloc(3 * sizeof(int)); // Move to the second element dynamicArray += 1;

When dealing with dynamically allocated memory, pointer arithmetic facilitates navigation through allocated blocks.

Mastering pointer arithmetic is essential for efficient memory manipulation and array traversal in C programming.

If you have specific questions or if there are additional topics you'd like to explore, feel free to ask!

Last modified: 25 February 2024