令人迷惑的const和指针的组合
#include <iostream>
using namespace std;
int main() {
const int ci = 1;
int const ci2 = 1;
const int* pci;
int const* pci2;
int* const cpi = 0;
int const* pci2;
int* const cpi = 0;
cout << typeid(ci).name() << endl;
cout << typeid(ci2).name() << endl;
cout << typeid(pci).name() << endl;
cout << typeid(pci2).name() << endl;
cout << typeid(cpi).name() << endl;
return 0;
}
}
输出
int
int
int const *
int const *
int *
int
int const *
int const *
int *
(输出时类型的常量限定符没有了)
ci, ci2 都是整型常量
pci, pci2 都是指向整型常量的指针
cpi 是指针常量