Con trỏ là gì
Bài học 2 trên 19 trong khóa học Hàm và con trỏ trong Go của Coddy.
Câu hỏi đầu tiên chúng ta cần trả lời là: con trỏ là gì? Chúng ta đã tìm hiểu về biến, được định nghĩa là những chiếc hộp lưu trữ giá trị. Còn con trỏ là những chiếc hộp lưu trữ địa chỉ thay vì giá trị.
Khi tạo một biến trong bất kỳ ngôn ngữ lập trình nào, biến đó được lưu trong bộ nhớ và mỗi vị trí trong bộ nhớ đều có một địa chỉ. Ví dụ, nếu định nghĩa một biến như sau:
var name = "Coddy"Chúng ta có thể biểu diễn biến này trong bộ nhớ như sau:
Để lấy bất kỳ giá trị nào từ bộ nhớ, chúng ta cần địa chỉ. Địa chỉ cho biết vị trí này nằm ở đâu trong bộ nhớ.
Con trỏ là một chiếc hộp lưu trữ địa chỉ bộ nhớ thay vì giá trị. Vì vậy, chúng ta gọi nó là con trỏ vì nó trỏ đến một địa chỉ trong bộ nhớ.
Cú pháp để định nghĩa một con trỏ như sau:
var name = "Coddy"
namePointer := &nameỞ đây, chúng ta định nghĩa một con trỏ có tên namePointer và dùng & để trỏ đến địa chỉ của biến name.
Chúng ta có thể định nghĩa một con trỏ mới với giá trị mặc định là nil như sau:
var coddy *stringCú pháp * này tạo một con trỏ mới tên là coddy có kiểu string, và giá trị mặc định của con trỏ là nil.
Để in ra địa chỉ được lưu trong con trỏ, chúng ta chỉ cần truyền tên con trỏ như sau:
fmt.Println(coddy)Để in ra giá trị được lưu tại địa chỉ mà con trỏ trỏ đến, chúng ta dùng dấu hoa thị *:
fmt.Println(*coddy)Thử thách
Dễ- Khai báo một biến có tên a với giá trị 200.
- Khai báo một con trỏ mới có tên aPointer thuộc kiểu int.
- Gán địa chỉ của biến a cho con trỏ aPointer.
- In ra giá trị của con trỏ aPointer và biến a.
Tự làm thử
package main
import "fmt"
func main() {
// Khai báo biến a có giá trị 200.
// Khai báo con trỏ mới aPointer thuộc kiểu int.
// Gán địa chỉ của biến a cho con trỏ aPointer.
// In ra giá trị của con trỏ aPointer và biến a.
fmt.Println("the value of the pointer:",?)
fmt.Println("the value of the variable :",?)
}Tất cả bài học trong Hàm và con trỏ trong Go
1Giới thiệu
Giới thiệu4Ôn tập các hàm xử lý chuỗi trong Go
Chuỗi trong GolangHàm nốiHàm kiểm tra chuỗi conHàm tìm chỉ sốThử thách ôn tập #1Tự luyện tập: Trình biên dịch Go online