【问题标题】:warning: comparison between pointer and integer [enabled by default] in c警告:c 中指针和整数的比较 [默认启用]
【发布时间】:2011-12-08 18:00:25
【问题描述】:

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

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 是一个指针。如何避免此类警告?

【问题讨论】:

    标签: c gcc ubuntu comparison


    【解决方案1】:

    NULL 与空终止符不同。你应该改用'\0'

    【讨论】:

      【解决方案2】:

      argv[1][i]是一个char,和'\0'或者0比较一下就清楚了。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-03-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多