我有以下两行代码:

const char* skimfile = argv[3];
cout << "skimfile = " << skimfile << endl;

我知道上面的两行代码可以工作,但是我不确定为什么。如果我们想打印出指针指向的值,我们不应该使用*skimfile吗?上面的代码如何仅使用skimfile来访问指针skimfile指向的值?指针声明前面是否有const是否会使这种情况有所不同?

非常感谢您的帮助!我真的很感激!

最佳答案

如果要输出指针的值,则写

cout << "skimfile = " << static_cast<void *>( skimfile ) << endl;

否则,用于字符指针的运算符<
没有这样一个重载的运算符,您必须编写例如
const char *s = "Hello";

for ( const char *p = s; *p; ++p )
{
    std::cout << *p;
}
std::cout << '\n';

而不只是
std::cout << s << '\n';

08-16 00:50