c语言真的很难 2022-12-30 16:03 采纳率: 94.1%
浏览 21

c语言|c1[i]=i+48为什么能输出0~9

#include"stdio.h"
main()
{    char c1[10],c2[26];
    int i;
    for(i=0;i<10;i++)
    c1[i]=i+48;
    for(i=0;i<26;i++)
    c2[i]=i+'A';
    for(i=0;i<10;i++)
    printf("%c ",c1[i]);
    printf("\n");
    for(i=0;i<26;i++)
    printf("%c ",c2[i]);
    printf("\n");
    
 } 

img


有点不理解为什么

```c++
c1[i]=i+48

```;可以输出0~9,为什么加48呢?c2[i]=i+'A';还有这句也不太理解

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-12-30 16:09
    关注

    因为i是个序数,0-9之间,加上48后就是字符'0'-'9'的ASCII码,其中48就是字符'0'的ASCII码
    同样c2[i] = i+'A'也一样,i是序数,0-25之间,'A' + 0就是字符'A','A' + 1就是字符'B'啊。实际都是进行ASCII码相加

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 12月30日

悬赏问题

  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡