我创建了一个 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/