Unlocking the Power of Pointers in C++
When it comes to programming in C++, understanding pointers is crucial. But did you know that pointers can be created not only for built-in types like integers and floats, but also for user-defined types like structures?
Pointers to Structures: A Deeper Look
Let’s dive into an example where we create a pointer to a structure.
struct Dimension {
    int inch;
    int feet;
};
int main() {
    Dimension d;
    Dimension* ptr = &d; // ptr is pointing to variable d
    (*ptr).inch = 10;
    (*ptr).feet = 5;
    return 0;
}Key Takeaways
- (*ptr).inch and d.inch are equivalent.
- (*ptr).feet and d.feet are equivalent.
- Remember that the . operator has a higher precedence than the * operator, so we enclose *ptr in brackets when using (*ptr).inch.
The Arrow (->) Operator: A Shortcut to Success
But there’s an even easier way to access member variables and functions of a structure variable through a pointer: the arrow (->) operator.
int main() {
    Dimension d;
    Dimension* ptr = &d; // ptr is pointing to variable d
    ptr->inch = 10;
    ptr->feet = 5;
    return 0;
}Accessing Member Variables with the Arrow Operator
Here’s an example where we use the arrow operator to access the member variable of variable d.
int main() {
    Dimension d;
    Dimension* ptr = &d; // ptr is pointing to variable d
    cout << ptr->inch << endl; // outputs 10
    cout << ptr->feet << endl; // outputs 5
    return 0;
}Important Note
(*ptr).inch and ptr->inch are equivalent.
Accessing Member Functions with the Arrow Operator
And it’s not just limited to member variables – we can also use the arrow operator to access member functions of a structure variable through a pointer.
struct Dimension {
    int inch;
    int feet;
    void print() {
        cout << "Inch: " << inch << ", Feet: " << feet << endl;
    }
};
int main() {
    Dimension d;
    Dimension* ptr = &d; // ptr is pointing to variable d
    ptr->print(); // outputs "Inch: 10, Feet: 5"
    return 0;
}Example Output
In this example, we access the member function of variable d using the pointer.
Inch: 10, Feet: 5By mastering pointers and the arrow operator, you’ll unlock a new level of efficiency and power in your C++ programming.