示例
#include <stdio.h>
int main(void)
{
//美国最常用的是ASCII编码
//其他国家的计算机系统可能使用完全不同的编码
//标准ASCII码的范围是0~127,只需7位二进制数即可表示。
char c = 'A';
char c_ASCII = 65; //'A'
//用%c打印字符,用%d打印字符对应的ASCII码
printf("c=%c=%d c_ASCII=%c=%d \n", c, c, c_ASCII, c_ASCII);
char c1 = 'ABC';//只会存储最后一个字符'C'
printf("c1=%c \n", c1);
//非打印字符,如下面的蜂鸣字符
char beep = '\a';
char beep_ASCII = 7;//十进制
//用八进制ASCII码表示时,可以省略前面的0
char beep_ASCII_0 = '\7';//八进制表示的字符'\7','\07','\007'
char beep_ASCII_x = '\x7';//十六进制表示的字符'\x7','\x07','\x007'
printf("beep=%c, beep_ASCII=%c, beep_ASCII_0=%c, beep_ASCII_x=%c \n",
beep, beep_ASCII, beep_ASCII_0, beep_ASCII_x);
//A=65=\101,用转义序列表示可以嵌入到字符串中
printf("ASCII char=\101 \n");
//有些编译器把char实现为有符号类型,这意味着char可表示的范围是-128~127
//有些编译器把char实现为无符号类型,这意味着char可表示的范围是0~255
//编译器如何实现char类型,可查阅limits.h头文件
//根据C90标准,C语言允许关键字char前面使用signed或unsigned
//用char类型处理小整数时很有用
signed char sc = -1;
unsigned char usc = 2;
printf("sc=%d, usc=%d", sc, usc);
getchar();
return 0;
}
运行测试
| 整型常量的例子 | |||
| 类型 | 十六进制 | 八进制 | 十进制 |
| char | \0x41 | \0101 | N.A. |
| int | 0x41 | 0101 | 65 |
| unsigned int | 0x41u | 0101u | 65u |
| long | 0x41L | 0101L | 65L |
| unsigned long | 0x41UL | 0101UL | 65UL |
| long long | 0x41LL | 0101LL | 65LL |
| unsigned long long | 0x41ULL | 0101ULL | 65ULL |
示例:字符数组
#include <stdio.h>
#include <stdint.h>
//引入bool类型,C99标准新增
#include <stdbool.h>
#include <windows.h>
#include <string.h>
#define PRAISE "Your name is"
int main(void)
{
char arr[4] = {'a', 'b', 'c', '\0'};
printf("arr=%s\n", arr);
char name[4];
printf("What's your name?\n");
//最多读取3个字符存储到name中,留1个位置存放'\0'
scanf_s("%s", name, 4);
printf("%s %s \n", PRAISE, name);
fflush(stdin);//清除缓冲区
while (getchar() != 10);
getchar();
return 0;
}