字符型数据的表示

字符型数据是用单引号括起来的一个字符。例如:

‘a’、’b’、’=’、’+’、’?’ 都是合法字符型数据。

  1. char x = '中'; // error 不能包含中文
  2. char ch1 = 'Z';
  3. char ch2 = '9';

在C语言中,字符型数据有以下特点:

  • 字符型数据只能用单引号括起来,不能用双引号或其它括号。
  • 字符型数据只能是单个字符,不能是字符串。
  • 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。如’5’和5 是不同的。’5’是字符型数据,不能参与运算。
  • 常用ASCII对照表

转义字符

转义字符是一种特殊的字符。转义字符以反斜线”\”开头,后跟一个或几个字符。

转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各示例中printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。

常用的转义字符及其含义

常用的转义字符及其含义

转义字符 转义字符的意义 ASCII代码
\n 回车换行 10
\t 横向跳到下一制表位置 9
\b 退格 8
\r 回车 13
\f 走纸换页 12
\ 反斜线符”” 92
\’ 单引号符 39
\” 双引号符 34
\a 鸣铃 7
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符

广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字母”A” ,\102表示字母”B”,\134表示反斜线,\XOA表示换行等。

字符变量

字符变量的类型说明符是char

字符变量类型定义的格式和书写规则都与整型变量相同。

例如:char a,b;

  • char 类型不能包含 ASCII 编码之外的字符
  • 字符在比较的时候比较的是ASCII值

字符变量在内存中的存储形式及使用方法

  • 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。
  • 字符值是以ASCII码的形式存放在变量的内存单元之中的。

对字符变量a、b赋予’x’和’y’值:如x的十进制ASCII码是120,y的十进制ASCII码是121。

  1. char a,b;
  2. a='x';
  3. b='y';

实际上是在a、b两个单元内存放120和121的二进制代码:

1. 字符 - 图1

  1. #include<stdio.h>
  2. int main(void){
  3. char a,b;
  4. a = 120;
  5. b = 121;
  6. printf("%c,%c\n",a,b); // x, y
  7. printf("%d,%d\n",a,b); // 120, 121
  8. return 0;
  9. }
  • %c 输出字符
  • %s 输出ASCII值