C语言中long long类型如何正确输出?

99ANYc3cd6
预计阅读时长 9 分钟
位置: 首页 C语言 正文

long long 是一个64位整数类型,为了确保它能正确输出,你需要使用对应的 printf 格式说明符。

c语言输出long long
(图片来源网络,侵删)

核心要点

printf 函数中,用于输出 long long 类型变量的格式说明符是 %lld

语法:

printf("%lld", your_long_long_variable);

完整示例代码

下面是一个完整的、可运行的示例,展示了如何定义、赋值并输出 long long 类型的变量。

#include <stdio.h>
int main() {
    // 1. 定义并初始化一个 long long 类型的变量
    // 为了表示 long long 类型的常量,建议在数字后加上 LL 或 ll 后缀
    long long number = 123456789012345LL;
    // 2. 使用 %lld 格式说明符输出
    printf("The value of the long long variable is: %lld\n", number);
    // 3. 也可以输出一个 long long 类型的常量
    printf("A large long long constant: %lld\n", 9223372036854775807LL);
    return 0;
}

编译和运行:

c语言输出long long
(图片来源网络,侵删)
  1. 将代码保存为 example.c
  2. 使用GCC编译器进行编译(推荐加上 -Wall 选项来开启所有警告):
    gcc -Wall example.c -o example
  3. 运行生成的可执行文件:
    ./example

预期输出:

The value of the long long variable is: 123456789012345
A large long long constant: 9223372036854775807

重要注意事项

后缀 LLll

当你给 long long 类型的变量赋一个很大的常量值时,最好在数字后面加上 LLll 后缀,这告诉编译器这个常量是 long long 类型,可以防止因数值过大而发生意外的整数溢出

  • 1234567890 (默认是 int)
  • 1234567890LL (明确是 long long)

LLll 都可以,但 LL 更具可读性,是C99标准之后推荐的做法。

警告:使用 %d 的错误

如果你错误地使用 %d(用于 int 类型)来输出 long long,会发生什么?

  • 在32位系统上intlong long 的大小不同,printf 会从错误的内存位置读取数据,导致输出一个完全错误的值。
  • 在64位系统上int 通常是32位,而 long long 是64位。printf 仍然会只读取变量的前32位,导致输出一个被截断的、错误的值。

错误示例:

#include <stdio.h>
int main() {
    long long big_number = 123456789012345LL;
    printf("Wrong output with %%d: %d\n", big_number); // 错误!
    return 0;
}

在64位系统上的错误输出:

Wrong output with %d: 1234567890  // 只输出了低32位

long long 的输入 scanf

如果你需要从用户输入中读取一个 long long 类型的值,scanf 函数对应的格式说明符也是 %lld

#include <stdio.h>
int main() {
    long long user_input;
    printf("Please enter a large integer: ");
    // 使用 %lld 来读取 long long 类型
    if (scanf("%lld", &user_input) == 1) {
        printf("You entered: %lld\n", user_input);
    } else {
        printf("Invalid input!\n");
    }
    return 0;
}

操作 格式说明符 示例
输出 long long %lld printf("%lld", my_var);
输入 long long %lld scanf("%lld", &my_var);
表示 long long 常量 LLll 后缀 long long x = 9999999999LL;

记住这个核心规则:处理 long long,读写都用 %lld

-- 展开阅读全文 --
头像
织梦文章上一篇下一篇功能如何实现?
« 上一篇 02-17
织梦如何调用第一个子栏目?
下一篇 » 02-17

相关文章

取消
微信二维码
支付宝二维码

目录[+]