c++ - 转换、强制转换和强制转换有什么区别?
问题描述
我一直在审查这个问题很长时间没有找到答案,所以我决定问:转换,强制转换和强制有什么区别?我对此有点笨拙,我非常感谢使用代码示例。
解决方案
[C++] 转换、强制转换和强制转换有什么区别?
转换是从表达式创建值,可能会更改结果值的类型。
强制转换是转换值的显式方式。一些转换不需要强制转换。这些被称为隐式转换。隐式转换示例:
int a = 42; long b = a; // type of expression a is int, // but implicitly converted to long
使用强制转换使转换显式的相同示例:
long b = static_cast<long>(a);
类型“强制”通常用作转换的同义词,但 C++ 语言规范中并未使用该术语。例如,该术语用于 ECMAScript 语言(即 JavaScript)。JS中的强制示例:
Number("42") + 42 // == 84 "42" + 42 // == "4242"
推荐阅读
- dart - 如何在 Flutter 中解码 JWT?
- algorithm - 使用距离矩阵查找带有航点的最短路线
- azure - 如何将 blob 容器中存在的一个大 zip 文件(100gb+)解压缩到另一个 blob 容器,我得到 System.OutOfMemoryException
- java - 创建 bean 时出错,注入自动装配的依赖项失败,无法自动装配字段
- java - 如何将 Transaction State 转换为 ContractState 类型的 fooState?
- excel - 运行时错误 9 - 订阅超出范围
- php - 标头位置在服务器上不起作用,但在 localhost 上起作用
- c++ - 模板变量 C 数组完全专业化是否应该指定数组大小?
- javascript - mouseover 事件在点击 Google Chrome 之前不会触发
- aws-lambda - 从 Lambda 安全地查询 AWS RDS