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