Xin chào, và chào mừng trở lại.
Tôi muốn nói một chút về con trỏ void trong bài giảng này.
Chúng tôi biết khoảng trống là gì bởi vì chúng tôi đã sử dụng
từ khóa này khi chúng tôi nói về các hàm.
Chủ yếu nếu chúng ta không muốn trả về bất kỳ dữ liệu nào từ một hàm, chúng
ta sử dụng khoảng trống như một phần của chữ ký hàm. Còn khi chúng ta sử dụng con trỏ tránh, điều này có nghĩa là gì?
Chà, tên kiểu void có nghĩa là không có bất kỳ kiểu nào.
Vì vậy, một con trỏ kiểu void star có thể chứa địa chỉ của một mục dữ liệu thuộc bất kỳ kiểu nào, vì
vậy nó có rất nhiều tính linh hoạt.
Nếu bạn không biết mình sẽ lưu trữ những gì dưới dạng con trỏ, bạn có
thể nói void star, khá tiện lợi. Nó thường được sử dụng trong các hàm cho các tham số hàm.
Vì vậy, void star thường được sử dụng như một kiểu tham số
hoặc một kiểu trả
về với các hàm, xử lý dữ liệu theo một kiểu độc lập.
Vì vậy, bạn có thể cho phép hàm của mình linh hoạt hơn
nếu nó sử dụng con trỏ dấu sao.
Về cơ bản, nó có nghĩa là hàm
của bạn có thể nhận nhiều hơn một loại biến
ngoại trừ nó không hoàn toàn linh hoạt vì bạn phải ép kiểu nào đó khi bạn tham khảo.
Vì vậy, bất kỳ loại con trỏ nào cũng có thể được chuyển xung quanh dưới dạng giá trị của kiểu void, bất kỳ kiểu nào.
Con trỏ void không biết loại đối tượng mà nó đang trỏ tới.
Vì vậy, bạn không thể tham khảo nó
trực tiếp, và đó là nơi xuất hiện trục trặc thực sự cùng với ngôi sao trống.
Nó rất tốt vì tính linh hoạt lâu dài cho các kiểu dữ liệu khác nhau, nhưng bạn chỉ
có thể sử dụng nó nếu bạn biết kiểu dữ liệu.
Vì vậy, bạn phải cung cấp một kết hợp
rõ ràng cho con trỏ khi bạn tham khảo nó.
Địa chỉ của một biến kiểu int có thể được lưu trữ trong một biến con trỏ kiểu void
vì void star có nghĩa là bất kỳ kiểu dữ liệu nào cũng có thể được lưu trữ bên trong đó.
Vì vậy, khi bạn muốn truy cập giá trị khoảng thời gian tại
địa chỉ được lưu trữ trong con trỏ dấu sao, trước tiên bạn phải truyền nó tới
một con trỏ kiểu int.
Trong ví dụ này, chúng ta sẽ xem cách bạn sử dụng con trỏ dấu sao.
Chúng tôi có ba biến mà chúng tôi đã xác định, một số nguyên và một số thực và một ký tự.
Bây giờ chúng ta sẽ tạo một con trỏ sao trống.
Vì con trỏ có kiểu void nên chúng ta có thể gán cho nó
địa chỉ của i là int. Chúng ta có thể gán cho nó
địa chỉ của f, là một float và chúng ta có thể gán cho nó địa chỉ
của ký tự hoặc ch là một ký tự.
Vấn đề duy nhất là khi bạn tham khảo, bạn phải biết kiểu đó, nhưng bạn vẫn thấy lợi thế ở đây.
Ưu điểm ở đây là chúng ta chỉ phải tạo một kiểu biến và chúng
ta có thể lưu trữ nhiều địa chỉ khác nhau trong đó.
Nhưng bất cứ khi nào bạn muốn sử dụng nó, bạn phải sử dụng nó trong ngôi sao.
Và bạn sẽ thấy ở đây khi chúng tôi in ra dữ liệu, ngôi sao bên trong
đang truyền con trỏ và sau đó chúng tôi hủy tham chiếu nó, ngôi sao bên ngoài dấu ngoặc
đơn int đang tham chiếu. Vì vậy, nó sẽ in ra
giá trị mà con trỏ v đang trỏ
đến, nhưng trước tiên nó sẽ truyền nó sang đúng kiểu.
Vì vậy, trong cả ba con trỏ v này, nó sẽ in ra cho con kiến, nó sẽ in ra 10.
Đối với phao, nó sẽ đưa ra 2. 34.
Và đối với ch, char, nó sẽ in ra k.
Chúng ta sẽ thấy con trỏ void được sử dụng nhiều hơn trong các tham
số hàm, như tôi đã nói, trong các kiểu trả về.
Và đó thực sự là giá trị khi nó đi vào và cũng như chỉ
sử dụng một con trỏ void star trong một khai
báo và gán nhiều kiểu dữ liệu khác nhau. Cảm ơn bạn.