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

Phân biệt con trỏ NULL và con trỏ void trong C


Khác biệt giữa con trỏ NULL và con trỏ void là: con trỏ NULL là một giá trị, còn con trỏ void là một kiểu dữ liệu.

Con trỏ NULL

Con trỏ NULL có nghĩa là nó không trỏ đến địa chỉ nào. Nếu chưa gán địa chỉ cho con trỏ, hãy gán nó bằng NULL.

Mỗi kiểu con trỏ (ví dụ: int *, char *) đều có giá trị NULL.

Cú pháp:

<kiểu dữ liệu> *<tên biến> = NULL;

Ví dụ:

int *p = NULL; char *p = '\0';

Chương trình ví dụ

Chương trình C minh họa con trỏ NULL:

#include<stdio.h> int main(){     printf("TutorialPoint C Programming");     int *p = NULL; // p là con trỏ NULL     printf("\n Giá trị của con trỏ là: %x ", p);     return 0; }

Kết quả

Khi chạy chương trình, kết quả như sau:

TutorialPoint C Programming The value of pointer is: 0

Con trỏ void

Con trỏ void là con trỏ không gắn liền với bất kỳ kiểu dữ liệu nào. Nó còn được gọi là con trỏ đa năng, có thể chứa địa chỉ của bất kỳ kiểu dữ liệu nào.

Cú pháp:

void *<tên biến>;

Ví dụ:

void *p; int a; char c;

p = &a; // p trở thành con trỏ kiểu int vì gán địa chỉ của int

p = &c; // p trở thành con trỏ kiểu char vì gán địa chỉ của char

Ví dụ

Chương trình C minh họa con trỏ void:

#include<stdio.h> int main(){     int a = 10;     void *ptr = &a;     printf("%d", *(int *)ptr);     return 0; }

Kết quả

Khi chạy chương trình, kết quả:

10