理解 C/C 中的 Long Long
在 C 和 C 中,“long long”数据类型表示 64 位有符号整数的精度。这使得它能够表示“int”或“long”等标准整数类型无法容纳的极大或极小的数字。
在提供的代码片段中,提出了有关“long”行为的几个问题long' 变量:
'long long' 的大小:
“sizeof”运算符返回变量或数据类型的大小(以字节为单位)。由于“num3”未使用任何值进行初始化,因此它保持未初始化状态,并且其大小未定义,从而导致 0。要解决此问题,请使用“long long”值显式初始化“num3”。
整数溢出:
C 以静默方式处理整数溢出。当分配给变量的值超过其容量时,它会回绕并继续从最小值开始计数。在这种情况下,将 10000000000 分配给“long”变量会导致溢出,结果为负值。然而,由于 'num2' 是一个 'long long',它可以容纳大值而不会溢出。
文字整数常量:
在 C 和 C 中,整数常量是强类型的。分配超出目标数据类型限制的文字整数常量会导致编译错误。在这个例子中,常量 100000000000 超出了 'long' 的范围,添加 'LL' 明确指定它应该被视为 'long long' 常量。
以上是为什么 C/C 中 'long long' 的行为与 'int' 或 'long' 不同?的详细内容。更多信息请关注PHP中文网其他相关文章!