0
点赞
收藏
分享

微信扫一扫

小朋友学C语言(19):字符和整数的关系


程序(一)

#include <stdio.h>

int main()
{
char ch = 'A';
printf("%c\n", ch);
printf("%d\n", ch);
printf("********************\n");

int num = 66;
printf("%c\n", num);
printf("%d\n", num);
printf("********************\n");

ch = 'a';
printf("%c\n", ch);
printf("%d\n", ch);
printf("********************\n");

num = 100;
printf("%c\n", num);
printf("%d\n", num);
printf("********************\n");

ch = 'B' + 24; // 相当于ch = 'Z';
printf("%c\n", ch);
printf("%d\n", ch);
printf("********************\n");

num = 97 + 25; // 97是'a'
printf("%c\n", num);
printf("%d\n", num);

return 0;
}

运行结果:

A
65
********************
B
66
********************
a
97
********************
d
100
********************
Z
90
********************

分析:
从程序的运行结果可以看出,字符和整数是对应的。
字符’A’对应于65,’B’对应于66,’C’对应于67,……,’X’对应于88,’Y’对应于89,’Z’对应于90。
’a’对应于97,’b’对应于98,’c’对应于99,……,’x’对应于120,’y’对应于’121’,’z’对应于122。

为什么会有对应关系呢?
具体原因请参考:
​ASCII编码简介


程序(二)

#include <stdio.h>

int main()
{
for(char ch = '0'; ch <= '9'; ch++)
{
printf("字符%c <---> 数字%d\n", ch, ch);
}

return 0;
}

运行结果:

字符0 <---> 数字48
字符1 <---> 数字49
字符2 <---> 数字50
字符3 <---> 数字51
字符4 <---> 数字52
字符5 <---> 数字53
字符6 <---> 数字54
字符7 <---> 数字55
字符8 <---> 数字56
字符9 <---> 数字57

分析:
从程序运行结果可以看出,字符‘0’对应于48,‘1’对应于49,‘2’对应于50,‘3’对应于51,‘4’对应于52,‘5’对应于53,‘6’对应于54,‘7’对应于55,‘8’对应于56,‘9’对应于57。

那么字符串“10”对应于数字多少呢?58吗?
不是的。计算机把字符串“10”当成了两个字符:‘1’和‘0’,分别对应49和48。

具体也可查阅ASCII编码简介中的表格。

还有一个问题:当你用键盘输入“0”的时候,计算机怎么知道你输入的是字符还是数字呢?
很简单,看格式化符号,如果是scanf(“%c”, ch),计算机就当做是字符,如果是scanf(“%d”, ch),计算机就当成是数字。
printf(“%c”, ch)和printf(“%d”,ch)也是同样的道理,这从上面的代码就可以看出来。


程序(三)

#include <stdio.h>

int main()
{
char ch = '\0';
printf("%d\n", ch);
ch = ' ';
printf("%d\n", ch);
ch = '\n';
printf("%d\n", ch);

return 0;
}

运行结果:

0
32
10

分析:
从运行可以看出:
(1)‘\0’与‘0’是不一样的,因为二者对应的ASCII编码不一样。
‘\0’对应着0,‘0’对应着48。
‘\0’代表空字符(NULL),通常用来做为字符串的结束符。
‘0’则是字符0或者数字48。

(2)程序里的‘\0’、‘\n’是转义字符。
什么叫转义呢?就是改变原来的意义。
比如‘0’表示字符‘0’,加上斜杆后‘\0’就变成了空字符。
再比如‘n’表示字符‘n’,加上斜杆后‘\n’就变成了换行符。

(3)所有的键盘操作(比如按Enter键进行换行)都对应着一个字符,当然也就对应了一个整数。都可以转化成机器可以认识的二进制。

注意:空格是用字符’ ‘来表示,不是用”来表示,两个单引号之间一定要加个空格,否则会报错。


举报

相关推荐

0 条评论