从long long int中减去一个int

Pao*_*eri 0 c++ integer casting long-integer

  1. 我可以intlong long int变量中减去变量吗?

  2. 如果我不能:我需要存储一个比存储在一个数字更大的数字int,我不想使用doublefloat因为我需要整数,我该怎么办?我不想全部使用long long int.有没有办法把它int变成一个long long int让我可以减法?

Jos*_*eld 5

是的你可以.所述int将被转换通常的算术转换long long int用于减法的缘故,使得两个操作数具有相同的整数转换等级,其结果也将是一个long long int.

这将在§5/ 9中涵盖:

许多期望算术或枚举类型的操作数的二元运算符会以类似的方式引起转换并产生结果类型.目的是产生一个通用类型,它也是结果的类型.此模式称为通常的算术转换,其定义如下:

[...]
如果两个操作数都有有符号整数类型或两者都有无符号整数类型,则具有较小整数转换等级类型的操作数应转换为具有更高等级的操作数的类型.
[...]

等级long long int大于等级int.