一、命名的强制类型转换的形式:
cast-name<type> (expression)
其中type是转换的目标类型,expression是要转换的值。如果type是引用类型,则结果是左值。cast-name是static_cast、const_cast、reinterpret_cast、和dynamic_cast中的一种。
1、static_cast
任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。
注:顶层const和底层const的区别:
(1)顶层const
实际上就是指针常量,即指针所指的地址不能变。如: int *const p;
(2)底层const
实际上就是常量指针,即指针所指的值不能变。如:const int *p = &a;
(注:关于指针常量和常量指针可以看我前面的博客有详细介绍: