本知识点对应谭浩强《C程序设计(第五版)》第3章3.2.4节"字符型数据",是C语言中数据类型的基础核心内容。
一、字符变量的定义与赋值
1.1 基本定义语法
字符变量用于存储单个字符,使用char关键字定义,赋值时必须用单引号将单个字符括起来。
正确示例:
#include <stdio.h> int main() { char ch = 'A'; // 正确:将字符'A'赋值给字符变量ch return 0; }1.2 常见错误赋值方式
以下几种赋值方式均不符合C语言语法规范,会导致编译错误:
将字符串赋值给单个字符变量
char ch = "A"; // 错误:双引号表示字符串,不能赋值给单个字符变量原因:双引号括起来的内容是字符串,C语言会自动在字符串末尾添加空字符'\0'作为结束标志。因此
"A"实际上包含两个字符:'A'和'\0',无法存入只能容纳一个字符的char类型变量。单引号内包含多个字符
char ch = 'AB'; // 错误:单引号只能括起单个字符原因:C语言语法规定,单引号只能用于表示单个字符常量。
二、变量的重复定义与多次赋值
2.1 禁止重复定义
同一个作用域内,变量名不能重复定义。编译器会报"redefinition"(重复定义)错误。
错误示例:
#include <stdio.h> int main() { char ch = 'A'; char ch = 'B'; // 错误:变量ch被重复定义 return 0; }2.2 允许多次赋值
变量定义完成后,可以被多次赋值,每次赋值都会覆盖变量原来的值。这是"变量"名称的由来——其值可以改变。
正确示例:
#include <stdio.h> int main() { char ch = 'A'; // 定义变量ch并初始化为'A' ch = 'C'; // 正确:将ch的值修改为'C' ch = 'D'; // 正确:再次将ch的值修改为'D' printf("%c\n", ch); // 输出:D return 0; }代码说明:
定义变量时的赋值称为"初始化"。
定义完成后的赋值称为"重新赋值"。
变量的值始终为最后一次赋值的结果。
三、ASCII码的核心概念
3.1 字符的存储本质
计算机内部只能存储二进制数据,无法直接存储字符。因此,每个字符都被预先分配了一个唯一的整数编号,这个编号就是ASCII码(美国信息交换标准代码)。
当我们将一个字符赋值给char变量时,计算机实际上存储的是该字符对应的ASCII码值,而不是字符本身。例如:
字符
'A'的ASCII码是65。字符
'a'的ASCII码是97。字符
'0'的ASCII码是48。
3.2 后续学习预告
ASCII码的详细对照表、字符与整数的转换关系、以及大小写字母的转换等内容,将在后续章节中系统讲解。
四、字符串的存储说明
字符串不能直接赋值给单个char变量,在C语言中,字符串通常通过以下两种方式存储:
字符数组。
字符指针。
这两种方式的具体用法将在后续章节中详细介绍。
五、要点总结
char类型变量只能存储单个字符,赋值时必须使用单引号。双引号表示字符串,末尾自动添加
'\0'结束符,不能赋值给单个char变量。单引号内只能包含一个字符。
变量不能重复定义,但可以多次赋值。
字符在计算机中以ASCII码的形式存储。
字符串需要通过字符数组或字符指针来存储。