在玩 C 的时候,经常会用 void* 来指向一段内存地址开端,然后再将其强转成尺度更小的 char* 或 int* 来丈量一段内存,参考如下代码:
int main()
{void* ptr = malloc(sizeof(int) * 10);int* int_ptr = (int*)ptr;char* char_ptr = (char*)ptr;
}
由于 C 的自由度比较大,想怎么玩就怎么玩,带来的弊端就是容易隐藏着一些不易发现的bug,归根到底还是程序员的功底不扎实,C++ 设计者觉得不能把程序员想的太厉害,应该要力所能及的帮助程序员避掉一些不必要的潜在 bug,并且还要尽最大努力的避免对性能有过多的伤害,所以就出现了 4 个强制类型转换运算符。
既然 C++ 做了归类,必然就有其各自用途,接下来我们逐一和大家聊一下。
这是四个运算符中最好理解的,玩过 C++ 的都知道,默认情况下是不能修改一个 const 变量,比如下面这样:
int main()
{const int i = 10;i = 12;
}
这段代码肯定是要报错的,那如果