assignment operator with pointers c++
The assignment operator in C++ is used to assign the value of one object to another object. When working with pointers in C++, the assignment operator behaves differently compared to other types.
When assigning a pointer to another pointer using the assignment operator, the value of the right-hand side pointer is copied to the left-hand side pointer. However, only the address of the memory location is copied, not the actual data itself.
Here is an example:
int main() {
int* ptr1;
int* ptr2;
int value = 5;
ptr1 = &value; // Assign the address of value to ptr1
ptr2 = ptr1; // Copy the address from ptr1 to ptr2
cout << "Value at ptr1: " << *ptr1 << endl; // Output: 5
cout << "Value at ptr2: " << *ptr2 << endl; // Output: 5
*ptr2 = 10; // Modify the value at the memory location pointed by ptr2
cout << "Value at ptr1: " << *ptr1 << endl; // Output: 10
cout << "Value at ptr2: " << *ptr2 << endl; // Output: 10
return 0;
}
In this example, we have two pointers ptr1
and ptr2
, both pointing to the same memory location of value
. When ptr2
is assigned the value of ptr1
, the address of value
is copied to ptr2
. Therefore, both ptr1
and ptr2
now point to the same memory location.
When we modify the value at the memory location using either ptr1
or ptr2
, the change is reflected in both pointers because they are pointing to the same memory location.
This is the basic behavior of the assignment operator with pointers in C++. It is important to understand this behavior to avoid unexpected results when working with pointers in your C++ programs.