C++ 类型转换2025年3月21日 | 阅读 5 分钟 在本主题中,我们将讨论在C++编程语言中将一种数据类型转换为另一种数据类型。类型转换是将一个变量的预定义数据类型转换为适当数据类型的过程。类型转换背后的主要思想是将两个不同数据类型的变量转换为单一数据类型,以便轻松解决数学和逻辑表达式,而不会丢失任何数据。 ![]() 例如,我们正在将两个数字相加,其中一个变量是 int 类型,另一个是 float 类型;我们需要将 int 变量转换或类型转换为 float,使它们都成为 float 数据类型,以便相加。 在C++中,类型转换可以通过两种方式完成,一种是隐式类型转换,第二种是显式类型转换。由编译器自身完成的转换称为隐式类型转换或自动类型转换。由用户完成或需要用户干预的转换称为显式类型转换或用户定义类型转换。让我们来讨论C++中的隐式和显式类型转换。 隐式类型转换隐式类型转换是由编译器自动完成的一种转换,无需任何人为操作。这意味着隐式转换会根据C++编译器的一些预定义规则,自动将一种数据类型转换为另一种类型。因此,它也被称为自动类型转换。 例如 在上面的例子中,有两个不同数据类型的变量 x 和 y,其中 x 是 int 类型,y 是 short int 数据类型。结果变量 z 也是一个整数类型,用于存储 x 和 y 变量。但是C++编译器会在得出两个数之和的结果之前,自动将较低等级的数据类型(short int)的值转换为较高类型(int)。因此,它避免了在C++的隐式类型转换中出现数据丢失、溢出或符号丢失。 隐式转换中的类型转换顺序以下是从低等级到高等级数据类型的正确顺序 使用隐式类型转换将 int 转换为 float 类型的程序让我们创建一个程序,使用隐式类型转换将较低等级的数据类型转换为较高类型。 Program1.cpp 输出 The value of num1 is: 25 The value of num2 is: 25 使用隐式类型转换将 double 转换为 int 数据类型的程序让我们创建一个程序,使用隐式类型转换将较高的数据类型转换为较低类型。 Program2.cpp 输出 The value of the int variable is: 15 The value of the double variable is: 15.25 在上面的程序中,我们已将 num 声明为整数类型,将 num2 声明为 double 数据类型变量,然后将 num2 赋值为 15.25。之后,我们使用赋值运算符将 num2 的值赋给 num 变量。因此,C++编译器在将其赋值给 num 变量之前,会自动将 double 数据值转换为整数类型,并打印截断后的值 15。 显式类型转换需要用户干预来将一个变量的数据类型更改为另一个变量的数据类型的转换,称为显式类型转换。换句话说,显式转换允许程序员手动更改或类型转换数据类型,从一个变量的类型转换到另一个类型。因此,它也被称为类型转换(typecasting)。通常,我们强制进行显式类型转换,以便将数据从一种类型转换为另一种类型,因为它不遵循隐式转换的规则。 显式类型转换分为两种方式
使用转换运算符将 float 值转换为 int 类型的程序转换运算符: 在C++语言中,转换运算符是一个一元运算符,它强制将一种类型转换为另一种类型。 让我们来看一个例子,在C++语言中使用显式转换的转换运算符将 float 数据类型转换为 int 类型。 Program3.cpp 输出 The value of x is: 6 使用赋值运算符将一种数据类型转换为另一种数据类型的程序让我们来看一个例子,在C++程序中使用赋值运算符将一个变量的数据类型转换为另一个变量。 Program4.cpp 输出 The value of int num1 is: 25 The value of float num2 is: 25.0 |
在本文中,我们将通过不同的方法讨论它。在讨论其方法之前,我们必须先了解 C++ 中的 Nicomachus 定理。用一个例子解释 Nicomachus 定理 k 的平方等于从 1 到 k 的奇数的和……
阅读 17 分钟
CSV 文件格式,即“逗号分隔值”,通常用于存储和交换已使用的表格数据。CSV 文件中的数据以纯文本形式组织成行和列。CSV 文件由组织成行和列的纯文本数据组成。每行代表一个...
阅读 4 分钟
在本文中,您将了解其语法、参数和示例。 ? 按位运算在低级编程中起着至关重要的作用,特别是在处理硬件、标志或某些算法时。确定一个整数是否只有一个位被设置可以...
5 分钟阅读
?C++23,这是最新的 C++ 标准,如今已在很大程度上被采用。它动态且丰富,拥有许多新功能,可以帮助我们改进语言的词汇和语篇。本文将描述每项新功能,这些功能将……
阅读 4 分钟
在本文中,我们讨论了启示数序列。启示数序列是数学的一个有趣领域,个人在使用 2 的幂时会以不同的方式看待它。为了达到这一点,我们分析了以 10 为底的 2 的幂,并了解了...
5 分钟阅读
在计算几何和机器学习的广阔领域中,量化对象之间差异的能力至关重要。这种需求促使了众多距离度量的发展,每种度量都针对不同的应用和场景进行了定制。在这些度量中,Minkowski 距离以其...
阅读9分钟
在本文中,我们将讨论 C++ 中的 multimap size() 函数。但在了解 size() 函数之前,我们必须了解 multimap。Multimap 是 C++ 中的一个排序容器,存在于标准模板库中。通常,map 存储键值对...
阅读 3 分钟
C++ 程序创建的双箭头图案似乎是一种被设计成两个指向相反方向的箭头的图案。精确的对齐、用于符号放置的条件表达式或用于行和列的嵌套循环有助于所有这些图案形成的例子。它是...
阅读 6 分钟
在当前的并发编程研究中,同步共享数据至关重要,这些数据将被多个线程写入、读取和修改。这可以通过传统的锁定技术(如互斥锁)来实现,在互斥锁暂时阻止其他线程的同时……
14 分钟阅读
在本文中,我们将讨论 C++ 中 tellg 和 tellp 之间的区别。但在讨论它们的区别之前,我们必须了解 C++ 中的 tellg 和 tellp。什么是 tellg() 函数? tellg() 函数返回流中指针的当前“获取”位置。它...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India