警告:c中指针和整数之间的比较

我想检查用户input是否只包含数字。 所以,我使用下面的代码:

for(i = 0; argv[1][i] != NULL; i++) if(!isdigit(argv[1][i])) { printf("Error"); return -1; } 

它运作良好,但我得到这个警告:

 warning: comparison between pointer and integer [enabled by default] 

因为argv[1][i]是一个整数, NULL是一个指针。 我怎样才能避免这样的警告?

NULL与null结束符不同。 您应该使用'\0'

argv [1] [i]是一个字符,只是比较它与'\ 0'或0,它是更清晰。

对于字符比较,可以使用(或者只是0)。

 for(i = 0; argv[1][i] != '\0'; i++)