1.Triển khai con trỏ trong C++void*
Chúng tôi đã nghiên cứu rằng con trỏ phải có cùng kiểu dữ liệu mà nó đang trỏ đến, như được chỉ định trong khai báo con trỏ. Nếu chúng ta khai báo một con trỏ nổi, nó không thể trỏ đến bất kỳ kiểu dữ liệu nào khác như int, long hoặc chuỗi; Nó chỉ có thể trỏ đến một biến kiểu phao.
C/C++ đã phát triển một giải pháp để khắc phục vấn đề này – con trỏ. Con trỏ là một con trỏ có mục đích chung có thể trỏ đến bất kỳ kiểu dữ liệu nào mà không cần bất kỳ định nghĩa con trỏ nào.void*
void*
static
Bạn có thể gán địa chỉ của bất kỳ kiểu dữ liệu nào cho con trỏ. Tương tự, con trỏ có thể được gán cho bất kỳ kiểu dữ liệu nào của con trỏ mà không cần đánh máy chúng một cách rõ ràng.void*
void*
Cú pháp:
void *pointerName;
void *ptr;
Có hai nhược điểm chính của việc sử dụng con trỏ trong C++:void*
- Do kích thước cụ thể, không thể thực hiện số học con trỏ với con trỏ trong C ++.
void*
- Bạn không thể tham chiếu một con trỏ.
void*
2.Kích cỡ của con trỏ trong C++void*
Kích thước của con trỏ tương tự như kích thước của con trỏ của loại ký tự trong C++. Con trỏ lưu trữ địa chỉ bộ nhớ trỏ đến một số dữ liệu trong chương trình.void*
Con trỏ này trong C++ phụ thuộc vào nền tảng máy tính của bạn. Trên nền tảng 32 bit, bạn cần 4 byte hoặc 32 bit để lưu trữ dữ liệu địa chỉ bộ nhớ.
Hàm có thể xác định kích thước của con trỏ.sizeof()
Cú pháp:
void *ptr = NULL; //void pointer
sizeof(ptr);
Mã ví dụ:
#include
#include
using namespace std;
int main() {
void *ptr = NULL; //void pointer
int *p = NULL; // integer pointer
char *cp = NULL; //character pointer
float *fp = NULL; //float pointer
//size of pointers
cout
3.Lý do sử dụng con trỏ void*
trong các chương trình C++
Chúng tôi sử dụng con trỏ trong C ++ để khắc phục các vấn đề gán các giá trị riêng biệt cho các kiểu dữ liệu khác nhau trong một chương trình. Con trỏ trong C++ có thể trỏ đến bất kỳ kiểu dữ liệu nào và kiểu kiểu dữ liệu đó mà không cần dự báo kiểu chữ rõ ràng.void*
void*
Nó không có bất kỳ giá trị trả lại nào. Con trỏ có thể trỏ đến int, float hoặc char và typecasts đến kiểu dữ liệu cụ thể đó.void*
Nó giúp các nhà phát triển viết mã và giảm các biến chứng của một chương trình.