const char ** p指针和整数之间的比较if(** p == NULL)

时间:2017-10-18 18:06:11

标签: c pointers null char

我正在定义一个函数,其中一个参数是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'之间混淆了什么?

1 个答案:

答案 0 :(得分:4)

NULL是一个定义空指针常量的宏,而不是ASCII字符NUL。如果你想测试一个角色NUL,那么:

if( **p == '\0' )

或更简单:

if( **p == 0 )