值为0 (NULL)的指针叫 空指针。
int *p = 0;
当指针为空时,不能使用“*”号操作
int * p = 0;
printf("%d\n",*p);程序执行出错。
但空指针是程序员可以接受的一种情况,只需要加一个 if 判断就能解决!
if ( p )
pintf("%d \n", *p );
空指针的应用
#includevoid 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;//没有指向谁就直接赋值,导致语法错误,程序崩溃.所以定义指针的时候要赋值