值为0 (NULL)的指针叫 空指针。
int *p = 0;
当指针为空时,不能使用“*”号操作
int * p = 0;
printf("%d ",*p);程序执行出错。
但空指针是程序员可以接受的一种情况,只需要加一个 if 判断就能解决!
if ( p )
pintf("%d ", *p );
空指针的应用
#include<stdio.h> void max_min( const int *arr, int len, int *pmax, int *pmin) { int _max = 0; int _min = 0; /*此处省略排序算法*/ if( pmax ) *pmax = _max; if( pmin ) //等于0就不执行 *pmin = _min; } int main() { int arr[4]; int _max; max_min( arr, 4, &max, 0);//没必要得到min return 0; }
野指针
int *p;
*p=0;//没有指向谁就直接赋值,导致语法错误,程序崩溃.所以定义指针的时候要赋值