c++ - 如何在main中指向char *argv[]?

标签 c++ c arrays pointers program-entry-point

在 C++ 中我有一个 main 函数

  int argc, char * argv[]

我需要在另一个函数中访问 argv[] 中的数据(即参数)。

我要声明一个全局变量,一个指向char **argv 的指针。

我该怎么做?

最佳答案

在 C++ 中,通常*处理 argv 的最佳方式是这样的:

int main(int argc, char **argv)
{
  std::vector<std::string> args(argv, argv + argc);
}

现在你有了 args,一个正确构造的 std::vectorargv 的每个元素作为 std::string 。看不到难看的 C 风格 const char*

然后您可以根据需要传递此 vector 或其中的一些元素。

* 它承载了动态分配每个 argv 字符串拷贝的内存和时间开销。但对于绝大多数程序而言,命令行处理对性能而言并不是关键的,增加的可维护性和健壮性是非常值得的。

关于c++ - 如何在main中指向char *argv[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426252/

相关文章:

java - Java 删除数组中的一个元素

c++ - 可变模板化结构/boost::variant 是如何实现的

c++ - 如何在 MFC 中向 CMenu 添加子菜单?

c - 内核领域中的错误处理/检查

c - libwebsockets for C,我可以将 websocket 文件描述符与 select() 一起使用吗?

c - scanf() 不等待输入

c++ - 为不存在的 map 返回什么迭代器如何签名?

c++ - Multipe Send( )'s and Recv()' s 使用 Winsock2

c - 根据最小值索引对数组进行排序?

arrays - 田口方法编程示例