C++ 中'cout<<cout'和'cout<<&cout'的区别?
Difference between 'cout<<cout' and 'cout<<&cout' in c++?
我想知道c++
中cout<<cout
和cout<<&cout
的实际差异?在我的编译器cout<<cout
返回0x477864
&cout<<&cout
在任何时候都返回0x477860
。它显示它们之间有一个数字的差。这些的意义是什么?
当你这样做的时候:
cout << cout;
依赖于流对void*
的隐式转换。该值用于(c++11之前)测试流的状态。它没有指定实际值是什么,如果流处于失败状态,它只需要为NULL,否则为非NULL。也许它返回的是对象成员的地址,但这并不重要,它是实现定义的。
当你这样做的时候:
cout << &cout;
获取cout
的实际地址
请注意,在c++ 11及以后的版本中,第一个cout << cout;
将不再编译,因为到void*
的隐式转换不再存在。相反,可以显式地转换为bool
来达到相同的目的。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- std::cout.imbue()多重调用
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- 在 COUT 语句中使用 COUT 调用函数
- GCC 4.8.2 自动矢量化由于 cout 而失败
- std::cout输出int时出现编译错误
- 为什么COUT在朋友函数中不起作用,该功能超载了操作员&lt;&lt;这是一个iStream运算符
- C++标准::cout和<<操作员,优先级
- 以x的倍数填充前导零,使用std::cout<<std::十六进制
- 错误:没有匹配'运算符<<"在'std::cout
- 过载<<比如cout错误
- cout & lt; & lt;“text"只在部分时间显示
- 如何显示/打印字符串对象?cout & lt; & lt;Int工作,count <<字符串
- 我怎样才能到达cout<<"排序:";;当C++中没有输入数字时