c(以及 objc、c++ 和 objc++)- char* argv[]

标签 c arrays pointers char argv

我创建了一个 echo 命令的克隆,这比我想象的要复杂。 这是我的问题: char *argv[] 是如何工作的?我知道 char myString[] 是如何工作的,但没有那种创建字符串的奇怪方法:

  • 是字符数组上的指针,还是字符数组上的指针?
  • 为什么当我 *argv[n] 时,它显示第 n 个参数,而不是第 n 个字符...字符可以显示

最佳答案

char* argv[] 的行为就像 char** argv 的行为一样。您也可以以相同的方式使用 char argv[][]

所以基本上,当您调用 *argv 时,您会得到 argv[0]*argv[n] 会为您提供 argv[0][n]

编辑:将 argv[x] 转换为 std::string:

std::string s(argv[x]);

从那时起,s 就是一个标准字符串。但请记住,您必须以零结尾的字符串,这不适用于 char** 中的随机二进制数据!

关于c(以及 objc、c++ 和 objc++)- char* argv[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23214425/

相关文章:

c - I/O 完成端口中的 select() 等价

c - 一个发布者和多个订阅者的访问控制

c++ - 应为常量表达式,无法分配常量大小为 0 的数组

c++ - 运算符 != 不匹配(操作数类型为指针和对象)

pointers - R 中指针的解决方法?

c - 使用少于 5 个按位运算符实现 "logical not"

c - linux 中 C 语言的 sound() 头文件?

javascript - 嵌套数组 : How to use && operator properly to skip some loops?

arrays - 如何限制 PostgreSQL 中数组的长度?

c - 按地址传递、scanf、取消引用