谁能帮我解释一下 该小程序的结果

kut00 2008-03-09 10:45:16
void func()
{
char *buffer=new char[128];
printf("0x%08x\n",buffer);
}

void main()
{
char *s2="bbbbbbbbbbbbbbbbb";
cout<<s2;
func();
return;
}


怎么会是:
0x00030b00
bbbbbbbbbbbbbbbbb
而不是:
bbbbbbbbbbbbbbbbb0x00030b00








...全文
164 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppzzhhsky 2008-03-10
  • 打赏
  • 举报
回复
void main()
{
char *s2="bbbbbbbbbbbbbbbbb";
cout < <s2<<endl;
func();
return;
}
就好了
如果没有endl,文件输出就不会终止,缓存区就没有刷新
xbt746 2008-03-10
  • 打赏
  • 举报
回复
编译器问题吧
zh1369 2008-03-10
  • 打赏
  • 举报
回复
void func()
{
char *buffer=new char[128];
printf("0x%08x\n",buffer);
}

void main()
{
char *s2="bbbbbbbbbbbbbbbbb";
cout < <s2;
func();
return;
}


怎么会是:
0x00030b00
bbbbbbbbbbbbbbbbb
而不是:
bbbbbbbbbbbbbbbbb0x00030b00

--------------
他的结果与编译器有关。
另外
cout,print出来的东西在有些时候对调试是种误导!不要太相信他们。
xiao_ke 2008-03-10
  • 打赏
  • 举报
回复
标准输入输出一般是行缓冲的。

至于楼主的结果嘛, 真还没见过!

单步走到cout时应该不会有输出,因为没有换行符endl(\n)
到printf是
输出应该为:
bbbbbbbbbbbbbbbbb0x00941158

这样才对。

以上只是想法,没实验过,有错之处勿怪!
weepy 2008-03-10
  • 打赏
  • 举报
回复
编译器问题,dev 和 vc++6.0 都可以
taodm 2008-03-10
  • 打赏
  • 举报
回复
不要混用cout/cin和printf/scanf
liqiang123abc 2008-03-10
  • 打赏
  • 举报
回复
路过。。
冒个泡。。
heogukbong 2008-03-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Chiyer 的回复:]
C/C++ code
vs2005

bbbbbbbbbbbbbbbbb0x00941158
请按任意键继续. . .
[/Quote]


OOO
okhere 2008-03-10
  • 打赏
  • 举报
回复
编译器问题!!!
IT_lau 2008-03-09
  • 打赏
  • 举报
回复
不懂
星羽 2008-03-09
  • 打赏
  • 举报
回复

vs2005

bbbbbbbbbbbbbbbbb0x00941158
请按任意键继续. . .





我啃 2008-03-09
  • 打赏
  • 举报
回复
cout < <s2; 缓存区没有刷新,
到return;时cout才刷新,从而先输出printf内容后cout
改为:

cout<<s2<<endl;
或者
cout<<s2<<flush;

就可以了~
mfs 2008-03-09
  • 打赏
  • 举报
回复
似乎跟刷新有关系
koko1998 2008-03-09
  • 打赏
  • 举报
回复
mingw
bbbbbbbbbbbbbbbbb0x003d2490
野男孩 2008-03-09
  • 打赏
  • 举报
回复
这结果挺可耻的~ 优化也不应该影响结果~
hastings 2008-03-09
  • 打赏
  • 举报
回复
printf()是立马输出,
cout不一定立马输出.
zywfriend 2008-03-09
  • 打赏
  • 举报
回复
正常情况下应当是bbbbbbbbbbbbbbbbb0x00941158
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-09 10:45
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下