为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr

问题描述:

为什么在函数中要特意加入 if(NULL == ptr)//特意加入这句 return NULL; return ptr;
特意加入这句有什么作用呢?因为如果ptr指针本身就为空的话,直接返回它不也是空么?
1个回答 分类:综合 2014-11-21

问题解答:

我来补答
if(NULL == ptr)
return NULL;
这样的语句,是为了程序的稳定性和健壮性.
因为如果ptr=NULL,下面的语句对其进行操作,会引起程序奔溃.
用常用的一个例子,举例:
Strcpy函数原型如下:
char *strcpy(char *strDest,const char *strScr)
{
char *address=strDest;
assert((strDest != NULL) && (strScr != NULL));//这一句的意义和 if(NULL == ptr)的意义基本一致.
while(*strScr) //是while(*strScr != ’\0’)的简化形式;
{
*strDest++ = *strScr++;
}
*strDest = '\0'; //当strScr字符串长度小于原strDest字符串长度
return address; //时,如果没有改语句,就会出错了.
}
 
 
展开全文阅读
剩余:2000
上一页:减术分裂
下一页:语文学习与巩固