常量的强制转换的疑惑const_cast<类型>(表达式)

来源:互联网 发布:巴基斯坦工作知乎 编辑:程序博客网 时间:2024/06/14 13:48

下面两个编译都通过,结果不一样。

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.


为什么上面两个会有不同的结果呢?求解

原创粉丝点击