Loading...
Loading...

C Pointers Tutorial

Pointers in C allow you to store the memory address of a variable. In this tutorial, we will cover the basics of pointers, their declaration, usage, and how to manipulate memory locations.

1. What is a Pointer?

A pointer is a variable that stores the memory address of another variable. Pointers are used to work directly with memory in C.

2. Declaring a Pointer

A pointer is declared using the * symbol. The type of the pointer must match the type of the variable it points to:

#include <stdio.h>

int main() {
    int num = 10;  // Regular variable
    int *ptr = #  // Pointer declaration and initialization
    printf("Address of num: %p\\n", ptr);
    printf("Value of num: %d\\n", *ptr);  // Dereferencing the pointer
    return 0;
}

Here, the pointer ptr stores the memory address of the variable num, and we can access the value using the dereference operator *.

3. Dereferencing a Pointer

Dereferencing a pointer means accessing the value stored at the memory address the pointer is pointing to. This is done using the * operator:

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = #  // Pointer to num
    printf("Value of num using pointer: %d\\n", *ptr);  // Dereferencing
    return 0;
}

The *ptr accesses the value of num through the pointer.

4. Pointer Arithmetic

You can perform arithmetic operations on pointers. Pointer arithmetic allows you to navigate through memory locations:

#include <stdio.h>

int main() {
    int arr[] = {10, 20, 30};
    int *ptr = arr;  // Pointer to first element of array
    printf("First element: %d\\n", *ptr);
    ptr++;  // Move pointer to the next element
    printf("Second element: %d\\n", *ptr);
    return 0;
}

Here, ptr++ increments the pointer, making it point to the next element in the array.

5. Pointers to Pointers

C also supports pointers to pointers, where a pointer stores the address of another pointer. This is useful for multi-dimensional arrays or dynamic memory management:

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr = #  // Pointer to num
    int **pptr = &ptr;  // Pointer to pointer
    printf("Value of num: %d\\n", **pptr);  // Dereferencing twice
    return 0;
}

In this example, **pptr dereferences the pointer twice to get the value of num.

6. Conclusion

Pointers are a fundamental concept in C programming, allowing you to manage memory effectively. Mastering pointers will help you write efficient and optimized C programs. Continue practicing to get comfortable with them.

0 Interaction
1.7K Views
Views
35 Likes
×
×
🍪 CookieConsent@Ptutorials:~

Welcome to Ptutorials

Note: We aim to make learning easier by sharing top-quality tutorials.

We kindly ask that you refrain from posting interactions unrelated to web development, such as political, sports, or other non-web-related content. Please be respectful and interact with other members in a friendly manner. By participating in discussions and providing valuable answers, you can earn points and level up your profile.

$ Allow cookies on this site ? (y/n)

top-home