trong ngôn ngữ lập trình, một số khái niệm làm cho việc lập trình dễ dàng hơn nhiều. Ví dụ, trong ngôn ngữ lập trình C, con trỏ void xác định một loại dữ liệu cụ thể dựa trên đầu vào của người dùng cuối. vì vậy, chúng ta sẽ nói về con trỏ trống trong ngôn ngữ c.
giống như các con trỏ khác, con trỏ void có các chức năng liên quan do tính linh hoạt của nó. tuy nhiên, nếu bạn muốn tiết kiệm thời gian trong việc lập trình, hàm trỏ vị trí của bạn là một con trỏ rỗng. con trỏ này cho phép bạn lưu và truy xuất các loại đối tượng khác nhau cùng một lúc. tiếp theo, bạn sẽ học tất cả các kỹ thuật mã hóa liên quan đến các con trỏ void trong ngôn ngữ c.
hình ảnh của ngôn ngữ lập trình
con trỏ rỗng trong ngôn ngữ c là gì?
thông thường, một con trỏ trống là một con trỏ không có kiểu dữ liệu nào. nói cách khác, chúng giống như những cái hộp rỗng. chức năng này cho phép chúng lưu địa chỉ của các biến kiểu dữ liệu không biết.
hàm con trỏ void của c cho phép bạn chuyển đổi kiểu dữ liệu của chúng sang kiểu dữ liệu khác, cho phép phân bổ bộ nhớ một cách dễ dàng. sau đó, điều này cho phép các tính năng linh hoạt như byte trong phân bổ bộ nhớ. ngoài ra, con trỏ rỗng trong ngôn ngữ c giúp thực hiện các chức năng thông thường.
(một chương trình đơn giản trong ngôn ngữ lập trình c “hello world”)
nguồn:
https:// commons. m. wikimedia. org/ wiki/ File: C_Hello_World_program. png
con trỏ void làm việc như thế nào trong c?
nói chung, các hàm trỏ là cần thiết cho lập trình. ít nhất, chúng ta thấy tầm quan trọng của nó trong quản lý địa chỉ và phân bổ bộ nhớ.
có hai loại con trỏ khác nhau; các con trỏ chung và trống. tuy nhiên, chúng tôi tập trung vào các con trỏ void và cách chúng hoạt động trong ngôn ngữ c.
Để có một con trỏ void trong ngôn ngữ C, bạn chỉ cần khai báo một thông điệp bằng từ khóa “void”.
nói chung, tham chiếu và bỏ tham chiếu đóng vai trò quan trọng trong khái niệm con trỏ chung. Trong trường hợp này, việc bỏ tham chiếu là nhận được giá trị được lưu trong biến con trỏ.
Do vậy, nếu các giá trị con trỏ không liên quan đến các loại dữ liệu có sẵn, bạn có thể chọn một chuyển đổi loại.
tuy nhiên, lưu ý rằng không có hành động số học nào được hỗ trợ bởi con trỏ rỗng. thay vào đó, chúng tôi sử dụng toán tử gián tiếp”*.” tin nhắn” Do vậy, việc chuyển đổi các kiểu dữ liệu sẽ rất cần thiết trong trường hợp. vì vậy, việc chuyển đổi loại được liên kết với loại dữ liệu được khai báo bên cạnh con trỏ void. nếu không, chương trình sẽ hiển thị các lỗi biên dịch.
kích thước void tương tự với các con trỏ ký tự trong c. Kích thước các đối tượng thay đổi tùy theo nền tảng con trỏ.
các hàm quản lý bộ nhớ là malloc () và calloc (). thay vào đó, các hàm này giúp phân bổ bộ nhớ cho loại dữ liệu bạn muốn. một cách nào đó, việc phân bộ nhớ sử dụng một dạng thức mà cho phép các con trỏ hàm tăng cường các tính năng khác.
(các biểu tượng minh họa cách các con trỏ làm việc trong ngôn ngữ c).
nguồn:
HTTPS://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg
cú pháp của con trỏ rỗng
thông thường, tốt nhất là sử dụng cú pháp đúng để nhập bất cứ chức năng lập trình nào. cú pháp của con trỏ void trong ngôn ngữ c là:
Void* Pointer_Name
trong đó” void” là một từ khóa của kiểu con trỏ. vì vậy, chúng ta có tên của con trỏ mà chúng ta chỉ vào và cung cấp một địa chỉ.
Hãy lấy ví dụ sau đây:
int b = 6
char c = ‘z’;
vì vậy, trong trường hợp chúng ta bao gồm một biến trống, chúng ta có:
void* p=& b; // con trỏ void gán và lưu int’b’ như một số nguyên địa chỉ.
p = & c; // con trỏ void cũng lưu địa chỉ char’c.
đi xa hơn, chúng ta hãy nhấn mạnh một số ví dụ ngữ pháp:
int i = 6; // khởi tạo các biến số nguyên.
int* p; // khai báo con trỏ số nguyên.
khai báo con trỏ void* ptr// void.
float* fp// khai báo con trỏ nổi.
p=fp; // invalid pointer.
ptr=p; // valid pointer.
fp=&i; // invalid pointer.
ptr=&i; // valid pointer.
ptr=fp; // valid pointer.
một số ví dụ về các con trỏ void và mẫu mã trong ngôn ngữ c
tiếp theo, chúng ta sẽ xem ví dụ về tham số con trỏ void trong đoạn mã dưới đây:
Mã mẫu # 1
trong ví dụ mã đầu tiên của chúng tôi, chúng tôi đã chỉ ra cách sử dụng hàm malloc (), vì vậy:
#include
# Bao gồm malloc.h
intmain ()
♫
int a=90;
int *x = (int*)malloc(sizeof(int)) ;
x=&a;
printf(“một con trỏ x chỉ tới giá trị:% d’, * x);
trả lại 0;
Vâng, thưa ông
xuất khẩu
Mã mẫu # 2
trong mã tiếp theo, chúng tôi chỉ ra khái niệm của việc chuyển đổi loại.
#include
intmain ()
♫
void *ptr = NULL; //void pointer variable
int *p = NULL;// integer pointer variable
char *cp = NULL;//character pointer variable
float *fp = NULL;//float pointer variable
// kích cỡ con trỏ rỗng
printf(“cỡ con trỏ void = %d\n\n”,sizeof(ptr));
// kích cỡ con trỏ số nguyên
printf(“kích thước con trỏ số nguyên = %d\n\n”,sizeof(p);
// kích thước con trỏ ký tự
printf(“kích thước con trỏ ký tự = %d\n\n”,sizeof(CP));
// kích cỡ con trỏ nổi
printf(“Kích cỡ con trỏ nổi = %d\n\n”,sizeof(FP));
trả lại 0;
Vâng, thưa ông
xuất khẩu
Nếu không, hãy xem liên kết video bên dưới về mã con trỏ void trong lập trình C.
HTTPS://youtu.be/- 503stjWLhc
5. sử dụng con trỏ void
cho đến nay, con trỏ void có liên quan rộng rãi trong lập trình ngôn ngữ c.
chúng có thể hữu ích cho bất cứ loại dữ liệu nào.
để hiểu rõ hơn, xem các ví dụ về mã dưới đây. Một số trong số đó bao gồm:
#include
voidmain ()
{
int num=10;//Initializes a normal variable
void* ptr// khai báo con trỏ rỗng
ptr=#//Directs Ptr pointer to num
printf(” giá trị của một biến số nguyên là = %d”, * ptr);
}
tuy nhiên, việc chạy mã này sẽ gây ra các lỗi khi biên dịch. nếu bạn sử dụng biến đổi loại trên cùng một mã để bỏ tham chiếu tới con trỏ, bạn sẽ có đầu ra mong muốn, vì vậy:
#include
voidmain ()
{
int num=10;//Initializes a normal variable
void* ptr// khai báo con trỏ rỗng
ptr=#//Directs Ptr pointer to num
printf(“Biến số nguyên là%d”, *(int *) ptr); // bỏ tham chiếu bằng cách chuyển đổi kiểu
}
giá trị biến số nguyên là 10.
vì vậy, chúng ta có thể loại bỏ tham chiếu với con trỏ void.
Do vậy, trong khi các thuật toán con trỏ không có hiệu lực đối với các con trỏ void, việc chuyển đổi loại có thể giúp giải quyết vấn đề này. kết xuất trở thành:
(Con trỏ rỗng làm cho việc mã hóa dễ dàng hơn bằng cách tiết lộ vị trí của các biến dữ liệu)
với calloc () và malloc (), con trỏ void giúp định vị trí bộ nhớ cho tất cả các loại dữ liệu.
để minh họa, xem mã dưới đây:
intmain (void)
♫
// Chú ý rằng hàm malloc () trả về void*
// sau đó, loại bị buộc phải được chuyển đổi thành bất kỳ loại dữ liệu nào, chẳng hạn như char *, int *,…
int *x = malloc(sizeof(int) * n);
}
đáng chú ý là chương trình trên chỉ có thể được biên dịch bằng ngôn ngữ c.
Cuối cùng nhưng không kém quan trọng, các biến con trỏ void giúp thực hiện các chức năng chung trong ngôn ngữ C.
kết luận
nói chung, các hàm trỏ void là một công cụ lập trình cơ bản. các lập trình viên thấy nó hữu ích vì không có loại dữ liệu nào liên quan đến nó. ít nhất, nó loại bỏ sự nhầm lẫn của các con trỏ về các giá trị và các loại dữ liệu khác nhau. do vậy, các con trỏ trống làm giảm sự chuyển đổi quá nhiều loại. nó cũng hỗ trợ dữ liệu kiểu con trỏ chung. vì vậy, nó cũng là một trình biên dịch toàn cầu.
bạn có một hướng dẫn đầy đủ về việc sử dụng con trỏ void trong ngôn ngữ c. Tuy nhiên, nếu bạn có thắc mắc hoặc cần các nguồn tài nguyên lập trình khác, trang liên lạc của chúng tôi luôn sẵn sàng.