鱼C论坛

 找回密码
 立即注册
查看: 2143|回复: 1

[已解决]带你学C带你飞课后作业

[复制链接]
发表于 2021-3-14 22:03:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
带你学C带你飞里变量的课后作业中代码题第2题
printf("打印五个字符:%c %c %c %c %c\n", 70, 105, 115, 104, 67);
其中的70,105,115,104,67这些是什么意思呢?
最佳答案
2021-3-15 01:04:54
本帖最后由 jackz007 于 2021-3-15 01:37 编辑

        这些数值都是 ASCII 编码。
        凡是把数值按字符打印("%c")的,这个数值一定是字符的编码。
        在电脑中,字符都是通过编码来表示的,其中,0~127 是 ASCII 码,电脑中用到的所有西文字符都包括在里面。例如,字符 '0' 的 ASCII 码是 48,'1' 的 ASCII 码是 49,字母 'A' 的 ASCII 码是 65,'B' 的 ASCII 码是 66,字母 'a' 的 ASCII 码是 97,'B' 的 ASCII 码是 98 等等。所以,从一定的意义上来说,字符就是数字,数字就是字符。
        运行下面的代码就可以看到真相

        【代码1】:
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         printf("%c : %d\n" , '0' , '0') ;
  5.         printf("%c : %d\n" , '1' , '1') ;
  6.         printf("%c : %d\n" , 'A' , 'A') ;
  7.         printf("%c : %d\n" , 'B' , 'B') ;
  8.         printf("%c : %d\n" , 'a' , 'a') ;
  9.         printf("%c : %d\n" , 'b' , 'b') ;
  10. }
复制代码

        【代码2】:
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         printf("%c : %d\n" , 48 , 48) ;
  5.         printf("%c : %d\n" , 49 , 49) ;
  6.         printf("%c : %d\n" , 65 , 65) ;
  7.         printf("%c : %d\n" , 66 , 66) ;
  8.         printf("%c : %d\n" , 97 , 97) ;
  9.         printf("%c : %d\n" , 98 , 98) ;
  10. }
复制代码

        编译、运行实况
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 0 : 48
  4. 1 : 49
  5. A : 65
  6. B : 66
  7. a : 97
  8. b : 98

  9. D:\00.Excise\C>
复制代码

        通过编译、运行你会发现,虽然两个代码 "长相" 很不一样,但是,它们的运行结果完全相同,从而更加说明,数字就是字符,字符就是数字。

        如果有兴趣,可以自行把ASCII 编码在 33 ~ 127 范围内的 ASCII 码字符都打印出来看看(0~32 都是不可见字符)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-15 01:04:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-3-15 01:37 编辑

        这些数值都是 ASCII 编码。
        凡是把数值按字符打印("%c")的,这个数值一定是字符的编码。
        在电脑中,字符都是通过编码来表示的,其中,0~127 是 ASCII 码,电脑中用到的所有西文字符都包括在里面。例如,字符 '0' 的 ASCII 码是 48,'1' 的 ASCII 码是 49,字母 'A' 的 ASCII 码是 65,'B' 的 ASCII 码是 66,字母 'a' 的 ASCII 码是 97,'B' 的 ASCII 码是 98 等等。所以,从一定的意义上来说,字符就是数字,数字就是字符。
        运行下面的代码就可以看到真相

        【代码1】:
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         printf("%c : %d\n" , '0' , '0') ;
  5.         printf("%c : %d\n" , '1' , '1') ;
  6.         printf("%c : %d\n" , 'A' , 'A') ;
  7.         printf("%c : %d\n" , 'B' , 'B') ;
  8.         printf("%c : %d\n" , 'a' , 'a') ;
  9.         printf("%c : %d\n" , 'b' , 'b') ;
  10. }
复制代码

        【代码2】:
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         printf("%c : %d\n" , 48 , 48) ;
  5.         printf("%c : %d\n" , 49 , 49) ;
  6.         printf("%c : %d\n" , 65 , 65) ;
  7.         printf("%c : %d\n" , 66 , 66) ;
  8.         printf("%c : %d\n" , 97 , 97) ;
  9.         printf("%c : %d\n" , 98 , 98) ;
  10. }
复制代码

        编译、运行实况
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 0 : 48
  4. 1 : 49
  5. A : 65
  6. B : 66
  7. a : 97
  8. b : 98

  9. D:\00.Excise\C>
复制代码

        通过编译、运行你会发现,虽然两个代码 "长相" 很不一样,但是,它们的运行结果完全相同,从而更加说明,数字就是字符,字符就是数字。

        如果有兴趣,可以自行把ASCII 编码在 33 ~ 127 范围内的 ASCII 码字符都打印出来看看(0~32 都是不可见字符)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 20:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表