我很清楚使用static_cast而不是C风格的指针类型转换的优势。如果指针类型不兼容,则:static_cast将在源代码中的特定行产生编译时错误C风格的转换可能会在程序执行的“随机”点导致运行时错误但我找不到任何非指针类型的类似示例。换句话说,两种转换方法对非指针类型产生相同的结果。这是正确的,还是我错过了什么?如果是,static_cast是否仅用于非指针类型以保持编码一致性? 最佳答案 其他两个答案尚未提及的一个优点是static_cast更容易发现。众所周知,括号的含义在C++中被重载,并且很难发现邪恶的(甚至不正确的)强