void指针和NULL指针
- void-无类型
- void指针
#include<stdio.h>
int main(){
int num=213;
int *p1=#
char *p2="huang lao ba";
void *p3;
p3=p2;
printf("num=%d\n",num);
printf("p1=%p\n",p1);
printf("*p1=%d\n",*p1);
printf("p2=%p\n",p2);
printf("*p2=%s\n",p2);
printf("p3=%p\n",p3);
printf("*p3=%s\n",(char *)p3);
return 0;
}
结果:
num=213
p1=0x7ffd86beffc4
*p1=213
p2=0x400680
*p2=huang lao ba
p3=0x400680
*p3=huang lao ba
- NULL指针
- #define NULL ((void *)0)
- 当你还不清楚要将指针初始化为什么地址时,请将它初始化为NULL,在对指针进行解引用时,先检查该指针是否为NULL。这种策略可以为你今后编写大型程序节省大量的调试时间
- NULL用于指向一个不被使用的地址
- '\0’表示字符串的结尾
#include<stdio.h>
int main(){
int *p1,*p2=NULL;
printf("%d\n",*p1);
printf("%d\n",*p2);
return 0;
}
结果:
1
段错误(吐核)