它们都是同一类型.std::string指定命名空间,string只有在使用using namespace std;or using std::string语句时才有意义.所以你使用的东西没有任何区别(只要你一致).
如果你在谈论字符串文字(例如"hello"),那么它们就是类型const char [],它会隐含地衰减const char *.std::string有一个非explicit构造函数,它接受一个const char *,这允许隐式转换const char *为std::string.可以使用该std::string::c_str()方法完成相反的操作 .
如果您正在寻找使用的理由std::string而不是const char *,那么我想我的回答将是"尽可能多".