我正在定义一个函数,其中一个参数是const char **p
。我理解这意味着'声明p作为指向const char的指针'。现在我想检查const char是否为NULL字符,从而检查(**p == NULL)
但是它会发出warning: comparison between pointer and integer
的警告。这是代码示例
bool func(const char **p)
{ if (**p == NULL)
return false;}
我不确定为什么这么抱怨。是不是** p应该取消引用字符值指针* p指向?或者我在NULL
和'\0'
之间混淆了什么?
答案 0 :(得分:4)
NULL是一个定义空指针常量的宏,而不是ASCII字符NUL。如果你想测试一个角色NUL,那么:
if( **p == '\0' )
或更简单:
if( **p == 0 )