哪位高手能帮小弟我解释一下 该小程序的结果

谁能帮我解释一下 该小程序的结果
void func() 

char *buffer=new char[128]; 
printf("0x%08x\n",buffer); 
}  

void main() 

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


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










------解决方案--------------------
printf()是立马输出,
cout不一定立马输出.
------解决方案--------------------
void main()
{
char *s2="bbbbbbbbbbbbbbbbb"; 
cout < <s2<<endl; 
func();
return;
}
就好了
如果没有endl,文件输出就不会终止,缓存区就没有刷新
------解决方案--------------------
不要混用cout/cin和printf/scanf
------解决方案--------------------
标准输入输出一般是行缓冲的。

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

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

这样才对。

以上只是想法,没实验过,有错之处勿怪!