这是代码:指针引用为const空值
const int x = 0;
const int& r = x;
const int* p1 = x; // Works (p1 = 0)
const int* p2 = r; // error C2440: 'initializing': cannot convert from 'const int' to 'const int *'
为什么P1设置为X的值,但不是P2?
难道是因为p2不能仅仅通过查看r来保证x是const?
或者是否还有其他引起此错误的引用的其他细节?
'cosnt int * p1 = x;'不应该编译。你正在使用哪种编译器? – Rakete1111
您对'p1'的第一次尝试也不合法。你的指针初始化都是错误的。 –
VS 2015与/ W4,/ sdl和/ WX开启。如果x不是const,那么它不编译,但是用const编译。 – lousybyte