0

为什么这段代码没有显示任何输出:相反,如果我们使用

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;
}
4

2 回答 2

5

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

于 2012-05-30T13:30:52.170 回答
2

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

于 2012-05-30T13:31:54.053 回答