Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在if语句的布尔表达式中使用指针_C_Pointers - Fatal编程技术网

C 在if语句的布尔表达式中使用指针

C 在if语句的布尔表达式中使用指针,c,pointers,C,Pointers,我得到的输入是argv,argc,我想根据输入返回TRUE或FALSE。我的代码是: int is_valid_regexp(const char* regexp); int main(int argc, char *argv[]) { if (!is_valid_regexp(argv[1])){ fprintf(stderr, "wrong regular expression format:%s", argv[1]); return(EXIT_FAILURE):

我得到的输入是
argv
argc
,我想根据输入返回TRUE或FALSE。我的代码是:

int is_valid_regexp(const char* regexp);
int main(int argc, char *argv[])
{   
  if (!is_valid_regexp(argv[1])){
    fprintf(stderr, "wrong regular expression format:%s", argv[1]);
    return(EXIT_FAILURE):
  }
  return (EXIT_SUCCESS);
}

int is_valid_regexp(const char* regexp)
{
  do{
    if(*regexp == '\\')
      return FALSE;
  }while (regexp++ != '\0');
  return TRUE;
}
程序执行,然后停止工作。我认为
if(*regexp=='\\')返回FALSE有问题
-如果排除该部分,程序运行良好。这和指针问题有关吗

 }while (regexp++ != '\0');
这里,
regexp
是一个指针,它等于内存区域的地址
regexp++
只需将指针向右移动一个位置。由于指针的类型是size\u t(unsigned\u int32),所以您可以跳出字符串。 使用


来解决您的问题。

}while(*regexp++!='\0')`}while (*regexp++ != '\0');`