gpt4 book ai didi

c - 变量赋值时1024和1024L有什么区别?

转载 作者:行者123 更新时间:2023-11-30 14:37:29 27 4
gpt4 key购买 nike

有什么区别?使用 printf("%ld") 时,它们都给出相同的输出

long x = 1024;
long y = 1024L;

最佳答案

在 C 源代码中,1024 是一个 int1024L 是一个 long int。在赋值期间,右侧的值将转换为左侧操作数的类型。只要遵守操作数组合的规则,并且右侧的值在左侧操作数的范围内,就没有区别,值保持不变。

一般来说,不带后缀的十进制常量是int,带有L的十进制常量是long int。但是,如果它的值太大而无法用通常的类型表示,它将自动成为下一个更大的类型。例如,在最大 int 为 2147483647 的 C 实现中,源代码中的常量 3000000000 将是 long int,即使它具有没有后缀。 (请注意,此规则意味着源代码中的相同常量在不同的 C 实现中可以具有不同的类型。)如果 long int 不够大,它将是 long long int。如果不够大,它可以是有符号扩展整数类型(如果实现支持)。

以上规则适用于十进制常量。还有十六进制常量(以 0x0X 开头)和八进制常量(以 0020 开头> 是表示 16 的八进制,与 20 不同,20 是表示 20 的十进制),它可能具有有符号或无符号类型。不同的整数类型很重要,因为溢出和转换的行为因类型而异。人们很容易将整数运算视为理所当然并假设它们有效,但了解细节以避免出现问题很重要。

关于c - 变量赋值时1024和1024L有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com