C语言中NULL指针和Void指针的区别

cserver side programmingprogramming更新于 2024/11/22 14:46:00

Null指针和Void指针的区别在于Null指针是一个值,而Void指针是一个类型。

NULL指针

空指针表示它没有指向任何东西。如果没有分配给指针的地址,则将其设置为null。

指针类型,即int *,char *,每个都有一个空指针值。

语法如下 −

<数据类型> *<变量名> = NULL;

例如,

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

示例程序

以下是 NULL 指针的 C 程序 −

#include<stdio.h>
int main(){
   printf("TutorialPoint C Programming");
   int *p = NULL; // ptr 是 NULL 指针
   printf("
指针的值为: %x ", p);    return 0; }

输出

当执行上述程序时,它会产生以下结果 −

TutorialPoint C 编程
指针的值为:0

空指针

空指针就是没有任何数据类型的指针。它也被称为通用指针。它可以保存任何数据类型的地址。

语法如下 −

void *<数据类型>;

例如,

void *p;
int a; char c;

p = &a; //p 变为整数指针,因为整数的地址被分配给它

p = &c; //p 变为字符指针,因为字符的地址被分配给它

示例

以下是 Void 指针的 C 程序 −

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

输出

当执行上述程序时,它会产生以下结果 −

10

相关文章