我检查某些类型的变量,并得到了一些混乱的结果:理解的typeid的输出()名称()
#include <iostream>
#include <typeinfo>
using namespace std;
int main(void) {
int number = 5;
int* pointer = &number;
cout << typeid(number).name() << endl; // i
cout << typeid(pointer).name() << endl; // Pi
cout << typeid(&pointer).name() << endl; // PPi
return 0;
}
的i
意味着int
,但什么Pi
和PPi
是什么意思? Pointer int
?
他们没有任何意义。我怀疑你正在使用GCC,它使用该系统为'typeid'命名类型。如果你看到像MSVC这样的东西,它们会有所不同。 – chris 2013-04-28 21:27:51
http://mentorembedded.github.io/cxx-abi/abi.html并假设您使用的是gcc:http://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html – 2013-04-28 21:34:08