在命令行参数中,为什么我们不能使用 string *arr 而不是 char **arr
In command line arguments why can't we use string *arr instead of char **arr
为什么这样做有效
int main(int argc, char **argv)
{
cout << argv[1] << "\n";
}
但不是这个
int main(int argc, string *argv)
{
cout << argv[1] << "\n";
}
字符串不就是 char*
吗?为什么我们可以使用第一个而不能使用后者? char**
和string*
有什么区别
In command line arguments why can't we use string *arr
instead of char **arr
如果您的编译器支持 main
的此类参数,您就可以。
但是语言标准不要求支持这些参数,而且据我所知没有编译器支持。所以,你不能使用它,因为你的编译器不支持它。
What is the difference between char**
and string*
char**
是指向 char*
的指针。 char*
是指向 char
的指针。 char
是一个函数类型,一个整数类型和一个表示编码窄字符的字符类型。
string*
是指向 string
的指针。全局命名空间中根本没有 string
这样的东西。 std::string
不是指针,也不是任何基本类型,而是 class 类型。它在标准库的头文件 <string>
中定义。
isn't a string
just a char*
?
不,不是。见上文。
为什么这样做有效
int main(int argc, char **argv)
{
cout << argv[1] << "\n";
}
但不是这个
int main(int argc, string *argv)
{
cout << argv[1] << "\n";
}
字符串不就是 char*
吗?为什么我们可以使用第一个而不能使用后者? char**
和string*
In command line arguments why can't we use
string *arr
instead ofchar **arr
如果您的编译器支持 main
的此类参数,您就可以。
但是语言标准不要求支持这些参数,而且据我所知没有编译器支持。所以,你不能使用它,因为你的编译器不支持它。
What is the difference between
char**
andstring*
char**
是指向 char*
的指针。 char*
是指向 char
的指针。 char
是一个函数类型,一个整数类型和一个表示编码窄字符的字符类型。
string*
是指向 string
的指针。全局命名空间中根本没有 string
这样的东西。 std::string
不是指针,也不是任何基本类型,而是 class 类型。它在标准库的头文件 <string>
中定义。
isn't a
string
just achar*
?
不,不是。见上文。