typeid运算符的奇怪行为?

Mah*_*esh 3 c++ xcode typeid

使用XCode 3.2.3(64位),我得到以下奇怪的输出.我究竟做错了什么?

#include <iostream>
#include <typeinfo>

struct student {

};

int main()  
{  
    int i;
    student obj;

    std::cout << typeid(i).name() << "\n";
    std::cout << typeid(obj).name() << "\n";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

i  
7student
Run Code Online (Sandbox Code Playgroud)

tem*_*def 7

结构的name()成员函数type_info是特定于实现的.无法保证它会尝试返回与原始程序中的内容相匹配的内容.实际上,C++ ISO标准(18.5.1.7)实际上表示该函数返回"实现定义的NTBS"(以空值终止的字节串).如果它想要的话,它可能总是返回字符串"neener neerer我不会告诉你这种类型的名字." 这与Java的Class<?>类型形成对比,后者对可以和不能返回的内容有非常严格的限制.