首页 > 解决方案 > C++ 从 int 到 long 的转换是一种提升吗?

问题描述

在网络上进行了大量研究之后,我无法弄清楚从 int 到 long 的转换是否被视为促销。

如果在此处的 Microsoft 网站上找到以下代码:

long  long_num1, long_num2;
int   int_num;

// int_num promoted to type long prior to assignment.
long_num1 = int_num;

但是,它没有在cppreference 网站上注明。

我理解促销是一种保持价值的转换(转换时不会改变价值)。

有人可以帮我解决这个问题吗?

提前致谢

标签: c++type-conversionintegerlong-integer

解决方案


long  long_num1, long_num2;
int   int_num;

// int_num promoted to type long prior to assignment.
long_num1 = int_num;

文字不正确。int_num没有提升,因为它已经是一个int,所以这里没有意义。

赋值时,会发生隐式转换——从源类型到目标类型。因为long可以表示 的所有值int,所以值不变,值int_num转换为long具有相同值的 a。


推荐阅读