为什么我需要添加星号?

Why do i need to add an asterisk?

我从 cplusplus.com 中获取了这个例子。我有这个代码:

#include <iostream>
#include <string>

int main ()
{
  std::string str ("Test string");
  for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
    std::cout << *it;
  std::cout << '\n';

  return 0;
}

"cout<<"后面的星号有什么作用?如果我删除那个星号,它会在 VC++ 中给出错误 C2679,当您忘记包含 <string> 时通常会出现该错误,但在我的例子中我包含了 <string>.

本例中的星号表示 "dereferencing"。那是;不要打印迭代器,打印迭代器指向的内容(就像您取消引用指针以打印它指向的内容而不是仅仅打印指针的值一样)。