为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在C语言中使用char ** argv还是char * argv []吗?

我应该在C语言中使用char ** argv还是char * argv []吗?

C
三国纷争 2019-10-23 14:24:16
我只是在学习C,并且想知道在我的主要方法中应该使用哪一个。有什么区别吗?编辑:那么哪个更常用?
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

这实际上取决于您要如何使用它(并且在任何情况下都可以使用):


// echo-with-pointer-arithmetic.c

#include <stdio.h>

int main(int argc, char **argv)

{

  while (--argc > 0)

  {

    printf("%s ", *++argv);

  }

  printf("\n");

  return 0;

}


// echo-without-pointer-arithmetic.c

#include <stdio.h>

int main(int argc, char *argv[])

{

  int i;

  for (i=1; i<argc; i++)

  {

    printf("%s ", argv[i]);

  }

  printf("\n");

  return 0;

}

至于哪个更常见-没关系。任何有经验的C语言程序员(在正确的条件下)都可以互换代码。就像一位经验丰富的英语讲者一样轻松地读“他们是”和“他们是”。


更重要的是,您学会阅读它们并认识它们的相似之处。您将阅读的代码比编写的要多,并且您需要对两者都同样满意。


查看完整回答
反对 回复 2019-10-23
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

它并没有真正的改变,但是后者更具可读性。正如第二个版本所说的那样,您得到的是一个char指针数组。可以像第一个版本一样将其隐式转换为double char指针。


查看完整回答
反对 回复 2019-10-23
  • 3 回答
  • 0 关注
  • 1883 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信