为什么没有输出显示

时间:2012-05-30 13:27:10

标签: c++

为什么此代码不显示任何输出:相反,如果我们使用

cout << &s1.f 

cout << &s1.i

给出正确的输出。

# include <iostream>
using namespace std;

struct s
{
char c;
int i;
float f;

}s1;

int main()
{
cout << &s1.c;
}

2 个答案:

答案 0 :(得分:5)

operator<<的重载需要char*并将其显示为以空字符结尾的字符串。如果要显示指针地址,请将指针强制转换为void*

答案 1 :(得分:2)

使用c的地址使类型成为char*,它将被解释为以空字符结尾的字符串。默认情况下,全局变量初始化为零,意味着c将被解释为空字符串,因此不会打印任何内容。