C: 主函数中的Argv声明



您认为在主函数中声明argv参数的方式更好,为什么?

int main(int argc, char **argv /* char *argv[] */ /* char (*argv)[] */) {
    //...
}

argv最终作为指针进入函数——只是作为argv地址的副本,但不是作为数组,对吧?所以我认为,其他备选方案在语法上也必须正确,但你更喜欢哪种方式?

问候

char *argv[]是最明确的含义——字符串数组。

如果你懒惰的话,char **argv是打字最快的。

char (*argv)[]我不知道你为什么要用。

使用*argv[]是传统的方式,但我也见过使用**argv的程序。

变体(*argv)[]实际上与*argv[]相反,第一个是指向数组的指针(在这种情况下是错误的(,最后一个是指针数组。

我个人更喜欢

char *argv[]

因为它更好地描述了argv,IMO。它是char*的数组,也就是字符串的数组,这就是我所期望的argv。不是双指针。第三种变体似乎还可以,与第二种变体相当。

我喜欢char *argv[],因为它是实际传递内容的最清晰表达式;指向字符串的指针数组。

char **argv更为一致,但我觉得"指针对指针"并不能准确地描述正在传递的内容。

第三个选项中多余的括号只是混淆了事情。

相关内容

  • 没有找到相关文章

最新更新