**注意:typeid是操作符,不是函数!
运行时获知变量类型名称,可以使用 typeid(变量).name(),需要注意不是所有编译器都输出”int”、”float”等之类的名称,对于这类的编译器可以这样使用:float f = 1.1f; if( typeid(f) == typeid(0.0f) **
1.解析函数
#include<iostream>
#include <typeinfo>
using namespace std;
#define SHOW_TYPE(type) cout<<#type<<"="<<typeid(type).name()<<endl;
int main()
{
SHOW_TYPE(int);
SHOW_TYPE(char);
SHOW_TYPE(short);
SHOW_TYPE(long);
SHOW_TYPE(float);
SHOW_TYPE(double);
SHOW_TYPE(long double);
SHOW_TYPE(unsigned);
int m[10];
SHOW_TYPE(m);
int *p;
int *q;
SHOW_TYPE(p);
SHOW_TYPE(q);
if(typeid(p).name() == typeid(q).name())
cout<<"p==q"<<endl;
else
cout<<"p!=q"<<endl;
}
程序输出