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