下面两个编译都通过,结果不一样。
void changeConst(const int * p) {
int * newP = const_cast<int *>(p);
*newP = 150;
}
int main(int argc, char *argv[]) {
const int A = 50;
changeConst(&A);
cout << A;
}
结果是50.
void changeConst(const int * p) {
int * newP = const_cast<int *>(p);
*newP = 150;
}
int main(int argc, char *argv[]) {
const int *A = new int(50);
changeConst(A);
cout << *A;
}
结果是150.
为什么上面两个会有不同的结果呢?求解