C语言中char类型

185 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情

声明变量

与其他类型变量的声明方式相同,例如:

char response;
char itable,latan;

字符化常量和初始化

如果要把一个字符常量初始化为字母A,不必背下ASCII码,通过初始化把字母A赋值给grade即可:

char grade ='A'

在C语言中,我们把用单引号括起来的单个字符被称为字符常量。当编译器发现A,就可以转化为对应的ASCII码。用的时候一定要加单引号,其他都是错误的。

char cakes; //声明一个char变量
cakes = 'B'//正确赋值格式
cakes = B ; //错误赋值,此时B是一个变量
cakes = "B"//错误赋值,此时“B”是一个字符串

其实,字符以数值形式储存,所以可以用数字代码来赋值:

char grade = 65//对于ASCII码来说是正确的,但编程方式不太好

虽然65是int型,但是它在char类型能表示范围内,所以将赋值给grate是可以的。因为65是字母A对应的ASCII码,相当于将A赋值给了grade。但是这样做的前提是可以系统使用ASCII码。建议用A代替65比较好,这样不会出现不必要麻烦。最好用字符常量,而不是数字代码。

非打印字符

单引号只适用于字符,数字和标点符号,浏览ASCII表会发现,有些ASCII字符打印不出来。例如,退格,换行等。有2种方法可以表示这些字符:

  • 使用ASCII码

例如蜂鸣字符的ASCII值是7,可以这样写:

char beep = 7
  • 转义序列

使用特殊的符号序列表示特殊的字符。

转义序列含义
\a报警
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\\反斜杠
\'单引号
\"双引号
\?问号
\0oo八进制值
\xhh十六进制值

我们来分析一下转义序列:

  • \a出现在屏幕的效果是发出一声蜂鸣,但不会移动屏幕光标。
  • \b,\f,\n,\r,\t和\v是常用的输入设备控制字符。观察他们最好看它们活跃的地方。换页符把活跃位置移动到下一页的开始处;换行符把活跃位置移至下一行的开始处;回车符把活跃位置移至下一页的开始处;水平制表符将活跃位置移至下一个水平制表点(一般为1,9,17,25等字符位置);垂直制表符把活跃位置移至下一个垂直制表点。
  • \,',"用于打印,',"字符。
  • \0oo,\xhh 用于特殊表示ASCII码。如果用八进制ASCII表示一个字符,可以在编码值前面加一个反斜杠并用单引号括起来。