C语言:字符与其ASCII码值详解
一、前言
这次我们了解一下字符与其相应的ASCII码值。
二、学习内容
计算机只能读取二进制,字符存储的时候只能存储其ASCII码值,而不能直接存储字符,所以每一个字符都有其对应的ASCII码值,以下为字符对应的ASCII码值。
字符用单引号引起来如’a’,‘b’
单个字符的打印用占位符%c

ASCII码表的特点:
**1.ASCII码值为0~31和127这33个字符是控制字符,也叫做不可打印字符,无法在屏幕上打印出来。**验证如下

由图我们可以看出在我们的控制台上只打印了一个大写字母A;由上表的ASCII码值我们可以看出啊ASCII值为65对应的字符被打印出来了,而ASCII码值为0和6的没有被打印出来。
#include <stdio.h>
int main()
{
char ch1 = 0;
char ch2 = 6;
char ch3 = 65;
printf("%c",ch1);
printf("%c",ch2);
printf("%c",ch3);
return 0;
}
下面我用循环的知识进一步证明ASCII码值为0~32的无法打印在控制台上(没有学过循环的同学可以关注我看我以后的文章,后续会讲到)
#include <stdio.h>
int main()
{
char ch;
for(ch = 0; ch <= 127; ch++)
{
printf("%c",ch);
}
return 0;
}

可以看到很多乱码,之所以会出现这些乱码是因为里边有很多不能打印的字符
2.大小写字母的ASCII码值相差32。
#include <stdio.h>
int main()
{
char ch1 = 65;
char ch2 = 97;
printf("%c\n",ch1);
printf("%c\n",ch2);
return 0;
}

转义字符表

还有两个特殊的转义字符:
\ddd 和 \xdd
ddd表示1~3个八进制的数字
dd表示2个十六进数字
1.最常见的\n为换行字符,无法打印,在写代码的时候用与不用有很大的区别。
#include <stdio.h>
int main()
{
printf("helloworld");
printf("\n");
printf("hello\nworld");
return 0;
}

三、易错点
1.0表示数字0
**‘0’表示字符0
‘\0’表示空字符,不可打印
2.转义字符是一个整体,一个字符
‘\n’ 、 ‘\t’ 、 ‘\r’ 、 ‘\’ 都只算1个字符,不是两个独立的符号
3.转义字符一定是反斜杠 **
错误写法:/n 、 /t 不是转义,就是普通两个符号
正确写法:\n 、 \t 、 \r
4.大小写字母差值记混
‘A’=65 , ‘a’=97 ,相差 32
四、感悟
这次学习我明白了char不只是“字母符号”,底层都是数字编码。一开始很容易混淆 ‘0’ 、 ‘\0’ 、单双引号、正反斜杠,通过敲代码、运行测试,才把这些坑理解清楚。以后写代码遇到字符和字符串会多加留意。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2601_95804904/article/details/168554487



