gpt4 book ai didi

c++ - 为什么将 char 指针流式传输到 cout 不打印地址?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:31 25 4
gpt4 key购买 nike

当我使用 printf() 打印一个字符指针时,它根据转换说明符决定是打印地址还是根据 %u 或 %s 打印整个字符串。

但是当我想用 cout 做同样的事情时,cout 将如何决定地址和整个字符串之间应该打印什么?这是一个示例来源:

int main()
{
char ch='a';
char *cptr=&ch;
cout<<cptr<<endl;
return 0;
}

在这里,在我的 GNU 编译器中,cout 试图将 ch 作为字符串输出。

如何使用 cout 通过 cptr 获取 ch 的地址?

最佳答案

过载分辨率选择 ostream& operator<<(ostream& o, const char *c);用于打印 C 风格的字符串。你想要另一个 ostream& operator<<(ostream& o, const void *p);被选中。您可能最好在这里进行类型转换:

 cout << static_cast<void *>(cptr) << endl;

关于c++ - 为什么将 char 指针流式传输到 cout 不打印地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com