C语言中NULL指针和Void指针的区别
空指针和空指针的区别在于空指针是值,空指针是类型。
NULL指针
null指针意味着它没有指向任何东西。如果没有分配给指针的地址,则将其设置为空。
指针类型,即int*、char*都有一个空指针值。
语法如下-
*= NULL;
例如,
int *p = NULL; char *p = '\0';
示例程序
以下是NULL指针的C程序-
#includeint main(){ printf("TutorialPoint C Programming"); int *p = NULL; // ptr 是一个空指针 printf("\n The value of pointer is: %x ", p); return 0; }
输出结果
执行上述程序时,会产生以下结果-
TutorialPoint C Programming The value of pointer is: 0
Void指针
void指针只不过是没有任何数据类型的指针。它也被称为通用指针。它可以保存任何数据类型的地址。
语法如下-
void *;
例如,
void *p; int a; char c;
p=&a;//p变为整数指针,因为整数的地址被分配给它
p=&c;//p更改为字符指针,因为字符的地址被分配给它
示例
以下是VoidPointer的C程序-
#includeint main(){ int a = 10; void *ptr = &a; printf("%d", *(int *)ptr); return 0; }
输出结果
执行上述程序时,会产生以下结果-
10