【C学习随笔】C语言的字符型数据

字符常量

用单引号括起来的一个字符都叫字符常量,字符常量只能是单个字符,不能为字符串,

1
2
3
4
5
6
#include <stdio.h>

int main(void) {
printf("this is my \'woshihaise\'\n");
return 0;
}

转译字符

因为存在以下转译序列,所以需要用反斜杠进行转译。

  • 下列是非打印字符:

\a, 警报(ANSI C)
\b, 退格
\f, 换页
\n, 换行
\r, 回车
\t, 水平制表符
\v, 垂直制表符
\, 反斜杠
\’, 单引号
\”, 双引号
\?, 问号
\0oo,八进制值(oo必须是有效的八进制数)
\xhh,十六进制值(hh必须是有效的十六进制数)

  • 如下例子
1
2
3
4
5
6
7
#include <stdio.h>

int main(void) {
char c = 'C';
printf("this is my \'%c\'", c);
return 0;
}

字符变量

字符变量来储存字符常量,即单个字符
使用char 关键字后面接上变量名称作为声明方式
char 字符类型一个字符占用一个字节,

1
2
char name;
char lastname, firstname;

给字符一个既定的值必须用单引号括起来,

1
char c = 'C';

这里注意使用%d输出的为10进制ASCII码,如果需要输出字符,可以使用%c进行输出
这里只是决定了字符的显示形式,字符储存永远是以二进制储存的。

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main(void) {
char c = 'C';
printf("this is my \'%c\'\n", c);
printf("this is my \'%d\'\n", c);
printf("this is my \'%c\'\n", c+32);
return 0;
}

字符可以看做是整型。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值,同理,在输出时也可以这样做。

允许字符型参与数值运算,即利用字符的ASCII码参与运算。

字符型和字符串型的区别

字符常量是用单引号括起来,字符串常量是用双引号括起来。
字符常量只能是单个字符,字符串常量则可以包含一个或多个字符。
可以把一个字符常量赋值给一个字符变量,,但是不能把一个字符串常量赋值给一个字符变量。
在C中没有相对应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。

字符常量占用一个字节的内存空间。字符常量的内存字节数等于字符串中字节数加一。增加的一个字节中存放一个空字符“\0”(ASCII码为0)这是字符串结束的标志。

字符串”woyaochifan”的内存存储

1
w o y a o c h i f a n \0