const execv的argv参数的正确性

时间:2012-07-23 12:23:07

标签: c const implicit-conversion qualifiers multiple-indirection

  

可能重复:
  Double pointer const-correctness warnings in C

请查看此处的表格:http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html

我们在C中看到以下内容无效:

void f(const char * const argv[])
{
    (void)argv;
}

int main(int argc, char *argv[])
{
    (void)argc;
    f(argv);
    return 0;
}

test.c: In function 'main':
test.c:9: warning: passing argument 1 of 'f' from incompatible pointer type
test.c:1: note: expected 'const char * const*' but argument is of type 'char **'

为什么这个无效?在我看来,const char * const argv[]char * argv []“更加稳定”(并且在C ++中允许它),为什么它在C中无效?

0 个答案:

没有答案