请问C++是如何输出char*型数据的?

Turbo_Dream 2009-07-05 09:28:52
请问高手,C++是如何输出输入char*型数据的?
...全文
5416 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
akira88 2009-07-06
  • 打赏
  • 举报
回复
你可以看看ostream对于<<重载的实现代码
MoonAndWind 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wostianzuo 的回复:]
刚好看了这个。。。
一般在输出语句上写出某个指针的名称时,显示出来的是该指针的地址,但是这种操作会特殊看待char型指针,即将某视为字符串(char数组),因此输出字符串本身而不是字符串的地址。。
[/Quote]
UP
seasonjie 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wostianzuo 的回复:]
一般在输出语句上写出某个指针的名称时,显示出来的是该指针的地址,但是这种操作会特殊看待char型指针,即将某视为字符串(char数组),因此输出字符串本身而不是字符串的地址。。
[/Quote]
同意
wostianzuo 2009-07-06
  • 打赏
  • 举报
回复
刚好看了这个。。。
一般在输出语句上写出某个指针的名称时,显示出来的是该指针的地址,但是这种操作会特殊看待char型指针,即将某视为字符串(char数组),因此输出字符串本身而不是字符串的地址。。
brookmill 2009-07-05
  • 打赏
  • 举报
回复
cout对于char*类型作了重载。
char *p; cout << p;
表面上看是把一个字符指针传给了cout,实际上cout会找到p指向的那块内存,把那里保存的字符依次输出,直到遇见字符串结束符'\0'
liao05050075 2009-07-05
  • 打赏
  • 举报
回复
char *p,
cout<<p;是会当做字符串输出
要想输出一个地址
那么就得要用cout<<(void*)p;
Fleeboy 2009-07-05
  • 打赏
  • 举报
回复 1
char *p = "hello, world!";
cout << p << endl;就可以输出"hello, world!"了
blh 2009-07-05
  • 打赏
  • 举报
回复

#include <iostream>

using namespace std;

int main()
{
string s;

cout << "INPUT: ";
cin >> s;
cout << "OUTPUT: " << s << endl;

return 0;
}

Turbo_Dream 2009-07-05
  • 打赏
  • 举报
回复
就是问内部原理
Vegertar 2009-07-05
  • 打赏
  • 举报
回复
输出 void* 可是会输出地址的。
大前置 2009-07-05
  • 打赏
  • 举报
回复
cout<<p;就可以了啊

你不会问内部原理吧?那可难了~~
goodname 2009-07-05
  • 打赏
  • 举报
回复
如果输出指针值可以转为void *
char *p;

cout << (void *)p;

65,183

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧