警告:c中指针和整数[默认启用]之间的比较

时间:2011-12-08 18:00:25

标签: c gcc ubuntu comparison

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

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是一个指针。我该如何避免这种警告?

3 个答案:

答案 0 :(得分:14)

NULL与null-terminator字符不同。您应该使用'\0'代替。

答案 1 :(得分:3)

argv [1] [i]是一个字符,只需将它与'\ 0'或0进行比较,就会更清楚。

答案 2 :(得分:1)

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

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