我创建了一个echo命令的克隆,这比我想的要复杂得多。 这是我的问题: 如何运作char * argv []?我知道如何使用char myString [],但没有那种奇怪的方法来创建字符串:
答案 0 :(得分:3)
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**
中的随机二进制数据无效!
答案 1 :(得分:0)
它是一个chars数组的指针,还是chars上的一个指针数组?
在C中,数组总是作为指向第一个元素的指针传递。因此,有效地,您可以将其视为char **,它是指向char的指针。
为什么当我* argv [n]时,它向我展示了n个参数,而不是n个char ... Chars can ve ve
您可以根据operator precedence:
拆分该表达式char* p = argv[n];
char c = *p;