求助NULL和
#include<stdlib.h>
#include<stdio.h>
int strcmp(const char *p1,const char *p2)
{
while(*p1!=NULL&&*p2!=NULL)
{
if(*p1==*p2)
{p1++;p2++;}
else if(*p1>*p2)
return 1;
else if(*p1<*p2)
return -1;
}
if(*p1&&!(*p2))
return 1;
else if(!(*p1)&&(*p2))
return -1;
else
return 0;
}
main()
{
char a[]="Hell";
char b[10]="Hell";
int n;
n=strcmp(a,b);
printf("%d\n",n);
}
本函数就是实现strcmp(),而在蓝色一行中的NULL改为‘\0’时编译和连接完全正确,而用NULL 在编译时就会提出警告。
这到底是为什么呢??
[解决办法]
参数没有检查是否是NULL