我有以下两行代码:
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';