当前位置: 首页 > article >正文

23. C 语言,%d 和 %i的区别

在 C 语言中,%d%i 都用来打印十进制整数。虽然它们在大多数情况下是可以互换使用的,但还是有一些细微的区别,特别是在解析输入时:

%d%i 的区别

  1. 打印时的区别

    • 对于打印整数的操作,%d%i 没有区别。它们都可以用来输出十进制整数。
    #include <stdio.h>
    
    int main() {
        int number = 123;
        printf("Using %%d: %d\n", number);
        printf("Using %%i: %i\n", number);
        return 0;
    }
    

    上面的代码输出将是:

    Using %d: 123
    Using %i: 123
    
  2. 输入时的区别

    • 当使用 scanf 函数读取整数输入时,%i 可以识别不同的进制(十进制123、八进制012、十六进制0x12),而 %d 只能读取十进制数。
    #include <stdio.h>
    
    int main() {
        int num;
        printf("Enter an integer (use 0x for hex, 0 for octal): ");
        scanf("%i", &num);  // Using %i for input
        printf("You entered: %d\n", num);  // Output in decimal
        return 0;
    }
    
    • 如果用户输入 0x1A%i 会将其识别为十六进制数(26 的十进制表示)。如果用户输入 012%i 会将其识别为八进制数(10 的十进制表示)。而 %d 只会读取十进制数,因此 0x1A012 输入时会被视为无效。

总结

  • 打印时: %d%i 功能相同,都用于输出十进制整数。
  • 输入时: %i 更灵活,能够识别不同的进制(十进制、八进制、十六进制),而 %d 仅用于读取十进制整数。

http://www.kler.cn/a/299984.html

相关文章:

  • Python 数据分析— Pandas 基本操作(下)
  • react js 笔记 3
  • 获取时间,并将时间按一定的格式输出
  • C++:sort自动排序函数
  • cell phone teardown 手机拆卸
  • nvm只有iojs列表解决办法
  • from T2I to T2V
  • 构建响应式 Web 应用:Vue.js 基础指南
  • Kubernetes资源管理常用的标签分类有哪些?
  • IT前端好用的工具集
  • 【科研小白系列】使用screen创建虚拟终端,实现本地关机后服务器仍然跑模型
  • Elasticsearch 使用误区之五——单次请求获取大量数据
  • 实时系统资源监测:AutoPowerOptionsOK确保电脑性能与节能兼备
  • SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能
  • Mysql 数据库免费使用
  • windows七个消息队列
  • 基于springboot的校园志愿者管理系统的设计与实现 (含源码+sql+视频导入教程+论文+PPT)
  • 数学基础 -- 线性代数之格拉姆-施密特正交化
  • DNAT和SNAT实践
  • 软件测试之单元测试与unittest框架详解