Computer >> Máy Tính >  >> Lập trình >> lập trình C

Phân biệt con trỏ NULL với con trỏ Void trong ngôn ngữ C

Sự khác biệt giữa con trỏ Null và con trỏ Void là con trỏ Null là một giá trị và con trỏ Void là một kiểu.

Con trỏ NULL

Một con trỏ null có nghĩa là nó không trỏ đến bất cứ thứ gì. Nếu, không có địa chỉ nào được gán cho một con trỏ, thì hãy đặt nó thành null.

Mỗi loại con trỏ, tức là int *, char * đều có giá trị con trỏ null.

Cú pháp như sau -

<data type> *<variable name> = NULL;

Ví dụ,

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

Chương trình mẫu

Sau đây là chương trình C cho con trỏ NULL -

#include<stdio.h>
int main(){
   printf("TutorialPoint C Programming");
   int *p = NULL; // ptr is a NULL pointer
   printf("\n The value of pointer is: %x ", p);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

TutorialPoint C Programming
The value of pointer is: 0

Con trỏ Void

Con trỏ void không là gì ngoài một con trỏ không có bất kỳ kiểu dữ liệu nào với nó. Nó cũng được gọi là một con trỏ mục đích chung. Nó có thể chứa các địa chỉ của bất kỳ kiểu dữ liệu nào.

Cú pháp của bạn như sau -

void *<data type>;

Ví dụ,

void *p;
int a; char c;

p =&a; // p thay đổi thành con trỏ số nguyên vì địa chỉ của số nguyên được gán cho nó

p =&c; // p thay đổi thành con trỏ ký tự vì địa chỉ của ký tự được gán cho nó

Ví dụ

Sau đây là chương trình C cho Void Pointer -

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

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

10