- 概念:用来描述字符的数据类型
- 全称:character
- 语法:
char ch = 'a'; // 'a'是字符常量,代表字母a
-
char 表示申请的内存空间的大小
-
ch 表示申请的内存空间的名称
-
‘a'存储的是字符a的ASCLL码的二进制,01100001
-
(1)、ASCLL表(以ascll码表数值的方式,存储到内存中):
-
(2)、格式控制符(不仅包含字符,还包含其它格式):
-
%c // 单个字符型 %o // 八进制 %x // 十六进制 %#o // 输出带有0前缀的的八进制数 012 %#x, // 输出带有0x前缀的十六进制数 0x12
示例:
#include <stdio.h> int main(int argc, char const *argv[]) { // 1、打印字符(字符 == 单字节的整型数) char ch1 = 'a'; // 单引号表示字符 char ch2 = 105; // 可以直接给字符类型赋整型数(因为字符类型本质上就是一个整型数(单字节)) int ch3 = 106; printf("ch1 == %d\n", ch1); // 以十进制数形式,打印字符变量ch1 printf("ch2 == %c\n", ch2); // 以字符形式,打印这个ch2变量的值 printf("ch3 == %c\n", ch3); // 以字符形式,打印这个ch3变量的值 // 2、字符打印格式(其它格式) char ch4 = 107; printf("ch4(字符) == %c\n", ch4); // 打印字符 printf("ch4(十进制) == %d\n", ch4); // 打印十进制数据 printf("ch4(八进制) == %o\n", ch4); // 打印八进制数据 printf("ch4(十六进制) == %x\n", ch4); // 打印十六进制数据 printf("ch4(八进制) == %#o\n", ch4); // 打印八进制数据 printf("ch4(十六进制) == %#x\n", ch4); // 打印十六进制数据(0123456789abcdef,小写) printf("ch4(十六进制) == %#X\n", ch4); // 打印十六进制数据(0123456789ABCDEF,大写) return 0; }