你可以把一个const类型的指针转换成非const类型的指针,你也可以把非const类型的指针转换成const类型的指针,但是你要确定源类型和目的类型是同一类型只不过是有没有const的区别。
请看下图:
再看下图:
因为const char *和const int *是不同类型所以转换失败了。
这个C语言的强制类型转换不同,因为C语言的强制类型转换太强大了,不好控制,它可以做到不同类型之间的转换,你容易转乱。
所以,const_cast更安全。
你可以把一个const类型的指针转换成非const类型的指针,你也可以把非const类型的指针转换成const类型的指针,但是你要确定源类型和目的类型是同一类型只不过是有没有const的区别。
请看下图:
再看下图: