mypointer = &value1;
*mypointer = 10;
mypointer = &value2;
*mypointer = 20;
cout << "value1==" << value1 << "/ value2==" << value2;
return 0;
}
value1==10 / value2==20
Chú ý rằng giá trị của
value1
và
value2
được thay đổi một cách gián tiếp. Đầu
tiên chúng ta gán cho
mypointer
địa chỉ của
value1
dùng toán tử lấy địa chỉ (
&
)
và sau đó chúng ta gán
10
cho giá trị được trỏ bởi
mypointer
, đó là giá trị được
trỏ bởi
value1
vì vậy chúng ta đã sửa biến
value1
một cách gián tiếp
Để bạn có thể thấy rằng một con trỏ có thể mang một vài giá trị trong cùng một
chương trình chúng ta sẽ lặp lại quá trình với
value2
và với cùng một con trỏ.
Đây là một ví dụ phức tạp hơn một chút:
// more pointers
#include <iostream.h>
int main ()
{
int value1 = 5, value2 = 15;
int *p1, *p2;
p1 = &value1; // p1 = địa chỉ của value1
p2 = &value2; // p2 = địa chỉ của value2
*p1 = 10; // giá trị trỏ bởi p1 = 10
*p2 = *p1; // giá trị trỏ bởi p2 = giá trị trỏ bởi p1
p1 = p2; // p1 = p2 (phép gán con trỏ)
*p1 = 20; // giá trị trỏ bởi p1 = 20
cout << "value1==" << value1 << "/ value2==" << value2;