Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Con trỏ void (void pointer) trong ngôn ngữ C là gì?


Là con trỏ có thể giữ địa chỉ của biến bất kỳ kiểu dữ liệu (hoặc) trỏ tới biến bất kỳ kiểu dữ liệu.

Khai báo

Khai báo con trỏ void:

void *pointername;

Ví dụ: void *vp;

Truy cập - Toán tử ép kiểu (type cast) dùng để truy cập giá trị biến qua con trỏ.

Cú pháp

*((type cast) void pointer)

Ví dụ 1

int i = 10; 
void *vp; 
vp = &i; 
printf("%d", *((int*)vp)); // ép kiểu int*

Ví dụ chương trình

Chương trình C cho void pointer:

#include <stdio.h> 
main() { 
    int i = 10; 
    float f = 5.34; 
    void *vp; 
    vp = &i; 
    printf("i = %d", *((int*)vp)); 
    vp = &f; 
    printf("f = %f", *((float*)vp)); 
}

Kết quả

i = 10 
f = 5.34

Ví dụ 2

Chương trình C cho phép tính con trỏ trong void pointer:

#include <stdio.h> 
#define MAX 20 
int main() { 
    int array[5] = {12, 19, 25, 34, 46}, i; 
    void *vp = array; 
    for (i = 0; i < 5; i++) { 
        printf("array[%d] = %d\n", i, *((int*)vp + i)); 
    } 
    return 0; 
}

Kết quả

array[0] = 12 
array[1] = 19 
array[2] = 25 
array[3] = 34 
array[4] = 46