我想知道cout<<cout和cout<<&cout在c++中的实际区别吗?在我的编译器中,cout<<cout返回0x477864 & cout<<&cout返回在任何time.It上的0x477860,显示它在them.What之间有1位数的差异,这些都有意义吗?
发布于 2015-05-26 14:59:31
当你这样做时:
cout << cout;您依赖于流的隐式转换到void*。此值用于测试流的状态(pre++11)。未指定值的实际值,如果流处于失败状态,则只需要为NULL,否则为非NULL。也许它是返回对象成员的地址,但是它并不是很重要,而且实现是定义的。
当你这样做时:
cout << &cout;即获取cout的实际地址。
请注意,在C++11和更高版本中,第一个cout << cout;将不再编译,因为向void*的隐式转换不再存在。相反,有一个向bool的显式转换,以满足同样的目的。
https://stackoverflow.com/questions/30461947
复制相似问题