带你学C带你飞课后作业
带你学C带你飞里变量的课后作业中代码题第2题printf("打印五个字符:%c %c %c %c %c\n", 70, 105, 115, 104, 67);
其中的70,105,115,104,67这些是什么意思呢?
本帖最后由 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】:
#include <stdio.h>
int main(void)
{
printf("%c : %d\n" , '0' , '0') ;
printf("%c : %d\n" , '1' , '1') ;
printf("%c : %d\n" , 'A' , 'A') ;
printf("%c : %d\n" , 'B' , 'B') ;
printf("%c : %d\n" , 'a' , 'a') ;
printf("%c : %d\n" , 'b' , 'b') ;
}
【代码2】:
#include <stdio.h>
int main(void)
{
printf("%c : %d\n" , 48 , 48) ;
printf("%c : %d\n" , 49 , 49) ;
printf("%c : %d\n" , 65 , 65) ;
printf("%c : %d\n" , 66 , 66) ;
printf("%c : %d\n" , 97 , 97) ;
printf("%c : %d\n" , 98 , 98) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
0 : 48
1 : 49
A : 65
B : 66
a : 97
b : 98
D:\00.Excise\C>
通过编译、运行你会发现,虽然两个代码 "长相" 很不一样,但是,它们的运行结果完全相同,从而更加说明,数字就是字符,字符就是数字。
如果有兴趣,可以自行把ASCII 编码在 33 ~ 127 范围内的 ASCII 码字符都打印出来看看(0~32 都是不可见字符)。
页:
[1]