我檢查某些類型的變量,並得到了一些混亂的結果:理解的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