Tạo Con Trỏ
Bạn đã học từ chương trước, rằng chúng ta có thể lấy địa chỉ bộ nhớ của một biến bằng cách sử dụng toán tử &:
Example
string food = "Pizza"; // A food variable of type string cout << food; // Outputs the value of food (Pizza) cout << &food; // Outputs the memory address of food (0x6dfed4)
Tuy nhiên, con trỏ là một biến lưu trữ địa chỉ bộ nhớ dưới dạng giá trị của nó.
Một biến con trỏ trỏ đến một kiểu dữ liệu (như int hoặc string) cùng kiểu và được tạo bằng toán tử *. Địa chỉ của biến mà bạn đang làm việc được gán cho con trỏ:
Example
string food = "Pizza"; // A food variable of type string string* ptr = &food; // A pointer variable, with the name ptr, that stores the address of food // Output the value of food (Pizza) cout << food << "\n"; // Output the memory address of food (0x6dfed4) cout << &food << "\n"; // Output the memory address of food with the pointer (0x6dfed4) cout << ptr << "\n";
Giải thích ví dụ
Tạo một biến con trỏ với tên ptr, biến đó trỏ đến một biến chuỗi, bằng cách sử dụng dấu hoa thị * (string * ptr). Lưu ý rằng loại con trỏ phải phù hợp với loại biến mà bạn đang làm việc.
Sử dụng toán tử & để lưu trữ địa chỉ bộ nhớ của biến được gọi là food và gán nó cho con trỏ.
Bây giờ, ptr giữ giá trị của địa chỉ bộ nhớ của food.
Mẹo: Có ba cách để khai báo biến con trỏ, nhưng cách đầu tiên được ưu tiên:
string* mystring; // Preferred string *mystring; string * mystring;
Sửa Đổi Giá Trị Con Trỏ
Bạn cũng có thể thay đổi giá trị của con trỏ. Nhưng lưu ý rằng điều này cũng sẽ thay đổi giá trị của biến ban đầu:
Example
string food = "Pizza"; string* ptr = &food; // Output the value of food (Pizza) cout << food << "\n"; // Output the memory address of food (0x6dfed4) cout << &food << "\n"; // Access the memory address of food and output its value (Pizza) cout << *ptr << "\n"; // Change the value of the pointer *ptr = "Hamburger"; // Output the new value of the pointer (Hamburger) cout << *ptr << "\n"; // Output the new value of the food variable (Hamburger) cout << food << "\n";
0 / 5 - (0 Đánh Giá)